Tambayoyi da amsoshi

Ta yaya zan iya deserialize asusun a cikin Rust fronted?

Girman rubutu
Matsalar da aka rasa #[max_len(32)] ita ce, asusun da aka jera yana ɗauke da string da aka cika da 0 bytes don yin 32 bytes, yayin da tsarin da ake cire jerin abubuwa yana ƙoƙarin cire adadin bytes ɗin da string ɗinka yake da shi a zahiri sannan sauran 0 bytes ɗin suna lalata shi don cire filayen da suka biyo baya. Don gyara wannan, ina ba da shawarar yin amfani da declare_program! daga anchor_client. Ta haka ba za ka buƙaci aiwatar da tsari ɗaya da hannu a cikin shirinka da abokin ciniki ba kuma za a aiwatar da cire jerin abubuwa a gare ka kyauta. Kwafi daga wannan tambaya: declare_program!(my_program); use my_program::{ID, accounts::Proposal}; use anchor_client::Client; let cl = Client::new_with_options( cluster, fee_payer, CommitmentConfig::confirmed(), ); let p = cl.program(ID).unwrap(); let acc_state: Proposal = p.account().await?; Idan ba za ka iya yin wannan ba, ina ba da shawarar yin amfani da BorshDeserialize::deserialize kamar yadda na faɗa matsalarka ita ce samun bytes da yawa. Proposal::deserialize(&mut &data[..]).unwrap(); Lura cewa wannan zai canza tsarin byte ɗinka na asali don nuna sauran bytes ɗin. Ina tsammanin wannan ba matsala ba ne saboda wataƙila ba za ka yi amfani da waɗannan bytes ɗin don wani abu ba, amma a matsayin sanarwa kawai.
Ci gaba da bincikeKundin bayanaiBincika