IntoVariant

Trait IntoVariant 

Source
pub trait IntoVariant<V> {
    // Required method
    fn into_variant(self, data: &[u8]) -> Result<V, Error>;
}
Expand description

Trait for seeds that can construct a compressed account variant.

Implemented by generated XxxSeeds structs (e.g., UserRecordSeeds). The macro generates impls that deserialize account data and verify seeds match.

§Example (generated code)

impl IntoVariant<RentFreeAccountVariant> for UserRecordSeeds {
    fn into_variant(self, data: &[u8]) -> Result<RentFreeAccountVariant, Error> {
        RentFreeAccountVariant::user_record(data, self)
    }
}

Required Methods§

Source

fn into_variant(self, data: &[u8]) -> Result<V, Error>

Construct variant from compressed account data bytes and these seeds.

§Arguments
  • data - Raw compressed account data bytes
§Returns

The constructed variant on success, or an error if:

  • Deserialization fails
  • Seed verification fails (data.* seeds don’t match account data)

Implementors§