#[derive(Compressible)]
{
// Attributes available to this derive:
#[compress_as]
#[light_seeds]
}
Expand description
Automatically implements all required traits for compressible accounts.
This derive macro generates HasCompressionInfo, Size, and CompressAs trait implementations. It supports optional compress_as attribute for custom compression behavior.
§Example - Basic Usage
ⓘ
use light_sdk_macros::Compressible;
use light_compressible::CompressionInfo;
use solana_pubkey::Pubkey;
#[derive(Compressible)]
pub struct UserRecord {
pub compression_info: Option<CompressionInfo>,
pub owner: Pubkey,
pub name: String,
pub score: u64,
}§Example - Custom Compression
ⓘ
use light_sdk_macros::Compressible;
use light_compressible::CompressionInfo;
use solana_pubkey::Pubkey;
#[derive(Compressible)]
#[compress_as(start_time = 0, end_time = None, score = 0)]
pub struct GameSession {
pub compression_info: Option<CompressionInfo>,
pub session_id: u64, // KEPT
pub player: Pubkey, // KEPT
pub game_type: String, // KEPT
pub start_time: u64, // RESET to 0
pub end_time: Option<u64>, // RESET to None
pub score: u64, // RESET to 0
}