pub trait AccountDeserialize: Sized {
    // Required method
    fn try_deserialize_unchecked(buf: &mut &[u8]) -> Result<Self, Error>;

    // Provided method
    fn try_deserialize(buf: &mut &[u8]) -> Result<Self, Error> { ... }
}
Expand description

A data structure that can be deserialized and stored into account storage, i.e. an AccountInfo’s mutable data slice.

Required Methods§

fn try_deserialize_unchecked(buf: &mut &[u8]) -> Result<Self, Error>

Deserializes account data without checking the account discriminator. This should only be used on account initialization, when the bytes of the account are zeroed.

Provided Methods§

fn try_deserialize(buf: &mut &[u8]) -> Result<Self, Error>

Deserializes previously initialized account data. Should fail for all uninitialized accounts, where the bytes are zeroed. Implementations should be unique to a particular account type so that one can never successfully deserialize the data of one account type into another. For example, if the SPL token program were to implement this trait, it should be impossible to deserialize a Mint account into a token Account.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

§

impl AccountDeserialize for Mint

§

fn try_deserialize_unchecked(buf: &mut &[u8]) -> Result<Mint, Error>

§

impl AccountDeserialize for TokenAccount

§

fn try_deserialize_unchecked(buf: &mut &[u8]) -> Result<TokenAccount, Error>

Implementors§

§

impl AccountDeserialize for UpgradeableLoaderState

source§

impl AccountDeserialize for AttestationPermissionAccountData

source§

impl AccountDeserialize for AttestationQueueAccountData

source§

impl AccountDeserialize for AttestationProgramState

source§

impl AccountDeserialize for FunctionAccountData

source§

impl AccountDeserialize for FunctionRequestAccountData

source§

impl AccountDeserialize for FunctionRoutineAccountData

source§

impl AccountDeserialize for FunctionServiceAccountData

source§

impl AccountDeserialize for ServiceWorkerAccountData

source§

impl AccountDeserialize for SwitchboardWallet

source§

impl AccountDeserialize for VerifierAccountData

source§

impl AccountDeserialize for AggregatorAccountData

source§

impl AccountDeserialize for BufferRelayerAccountData

source§

impl AccountDeserialize for CrankAccountData

source§

impl AccountDeserialize for JobAccountData

source§

impl AccountDeserialize for LeaseAccountData

source§

impl AccountDeserialize for OracleAccountData

source§

impl AccountDeserialize for PermissionAccountData

source§

impl AccountDeserialize for OracleQueueAccountData

source§

impl AccountDeserialize for SbState

source§

impl AccountDeserialize for SlidingResultAccountData

source§

impl AccountDeserialize for VrfAccountData

source§

impl AccountDeserialize for VrfLiteAccountData

source§

impl AccountDeserialize for VrfPoolAccountData

§

impl AccountDeserialize for switchboard_solana::prelude::Mint

§

impl AccountDeserialize for ProgramData

§

impl AccountDeserialize for switchboard_solana::prelude::TokenAccount