pub trait Codec32: Sized {
// Required methods
fn encode_32(&self) -> [u8; 32];
fn decode_32(bytes: &[u8; 32]) -> Result<Self>;
}Expand description
Trait for types that can be encoded/decoded to/from 32-byte slots.
This trait is used for storage operations where all values must fit in fixed 32-byte slots. Primitive integers are stored in little-endian format with zero-padding.
§Derivable
Use #[derive(Codec32)] for custom types (requires BytesCodec):
ⓘ
#[derive(BytesCodec, Codec32)]
struct Balance {
amount: u64,
locked: u64,
}§Example
ⓘ
let value = 1000u64;
let slot = value.encode_32();
let decoded = u64::decode_32(&slot)?;
assert_eq!(decoded, 1000);Required Methods§
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.