Skip to main content

Codec

Trait Codec 

Source
pub trait Codec<T>: Send + Sync {
    // Required methods
    fn name(&self) -> &str;
    fn version(&self) -> u32;
    fn encode(&self, value: &T) -> Result<Vec<u8>, CodecError>;
    fn decode(&self, bytes: &[u8]) -> Result<T, CodecError>;
}
Expand description

Codec for tier serialization. Tiers call encode(value) before backend.write and decode(bytes) after backend.read. name + version surface at the tier level for format_version migration (Q4).

Required Methods§

Source

fn name(&self) -> &str

Codec identifier (e.g. "json", "dag-cbor", "dag-cbor-zstd").

Source

fn version(&self) -> u32

Codec version. Bumped when the on-wire format changes incompatibly.

Source

fn encode(&self, value: &T) -> Result<Vec<u8>, CodecError>

Source

fn decode(&self, bytes: &[u8]) -> Result<T, CodecError>

Implementors§