Skip to main content

CacheCodecImpl

Trait CacheCodecImpl 

Source
pub trait CacheCodecImpl: Send + Sync {
    // Required methods
    fn serialize(&self, writer: &mut dyn Write) -> Result<()>;
    fn deserialize(data: &Bytes) -> Result<Self>
       where Self: Sized;
}
Expand description

Serialization trait for cache entries.

Experimental: the serialized format is not stable and may change between releases without notice.

Implement this on concrete types that need to survive serialization through a persistent cache backend. Then wire it into a CacheKey via CacheCodec::from_impl:

impl CacheCodecImpl for MyData {
    fn serialize(&self, w: &mut dyn Write) -> Result<()> { /* ... */ }
    fn deserialize(data: &Bytes) -> Result<Self> { /* ... */ }
}

impl CacheKey for MyDataKey {
    type ValueType = MyData;
    fn codec() -> Option<CacheCodec> {
        Some(CacheCodec::from_impl::<MyData>())
    }
    // ...
}

Required Methods§

Source

fn serialize(&self, writer: &mut dyn Write) -> Result<()>

Source

fn deserialize(data: &Bytes) -> Result<Self>
where Self: Sized,

Implementors§