pub trait AccountDeserialize: Sized {
    fn try_deserialize(buf: &mut &[u8]) -> Result<Self, ProgramError>;
    fn try_deserialize_unchecked(buf: &mut &[u8]) -> Result<Self, ProgramError>;
}
Expand description

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

Required methods

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 where to implement this trait, it should impossible to deserialize a Mint account into a token Account.

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

Implementors