Skip to main content

CompressionInfoField

Trait CompressionInfoField 

Source
pub trait CompressionInfoField {
    const COMPRESSION_INFO_FIRST: bool;

    // Required methods
    fn compression_info_field(&self) -> &Option<CompressionInfo>;
    fn compression_info_field_mut(&mut self) -> &mut Option<CompressionInfo>;

    // Provided method
    fn write_decompressed_info_to_slice(
        data: &mut [u8],
        current_slot: u64,
    ) -> Result<(), LightSdkTypesError> { ... }
}
Expand description

Simple field accessor trait for types with a compression_info: Option<CompressionInfo> field. Implement this trait and get HasCompressionInfo for free via blanket impl.

Required Associated Constants§

Source

const COMPRESSION_INFO_FIRST: bool

True if compression_info is the first field, false if last. This enables efficient serialization by skipping at a known offset.

Required Methods§

Provided Methods§

Source

fn write_decompressed_info_to_slice( data: &mut [u8], current_slot: u64, ) -> Result<(), LightSdkTypesError>

Write Some(CompressionInfo::new_decompressed()) directly into serialized account data.

This avoids re-serializing the entire account by writing only the compression_info bytes at the correct offset (first or last field position).

§Arguments
  • data - Mutable slice of the serialized account data (WITHOUT discriminator prefix)
  • current_slot - Current slot for initializing last_claimed_slot
§Returns
  • Ok(()) on success
  • Err if serialization fails or data is too small

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§