Code

Trait Code 

Source
pub trait Code {
    // Required methods
    fn encode(&self, writer: &mut impl Write) -> Result<(), CodeError>;
    fn decode(reader: &mut impl Read) -> Result<Self, CodeError>
       where Self: Sized;
    fn estimated_size(&self) -> usize;
}
Expand description

Encode/decode trait for key and value.

Code is required while working with foyer hybrid cache.

Some general types has already implemented Code by foyer, but the user needs to implement it for complex types.

Or, the user can enable serde feature for foyer. Then all types that implements serde::Serialize and serde::de::DeserializeOwned will be automatically implemented for Code.

Required Methods§

Source

fn encode(&self, writer: &mut impl Write) -> Result<(), CodeError>

Encode the object into a writer.

Source

fn decode(reader: &mut impl Read) -> Result<Self, CodeError>
where Self: Sized,

Decode the object from a reader.

Source

fn estimated_size(&self) -> usize

Estimated serialized size of the object.

The estimated serialized size is used by selector between different disk cache engines.

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.

Implementations on Foreign Types§

Source§

impl Code for bool

Source§

fn encode(&self, writer: &mut impl Write) -> Result<(), CodeError>

Source§

fn decode(reader: &mut impl Read) -> Result<Self, CodeError>
where Self: Sized,

Source§

fn estimated_size(&self) -> usize

Source§

impl Code for f32

Source§

fn encode(&self, writer: &mut impl Write) -> Result<(), CodeError>

Source§

fn decode(reader: &mut impl Read) -> Result<Self, CodeError>

Source§

fn estimated_size(&self) -> usize

Source§

impl Code for f64

Source§

fn encode(&self, writer: &mut impl Write) -> Result<(), CodeError>

Source§

fn decode(reader: &mut impl Read) -> Result<Self, CodeError>

Source§

fn estimated_size(&self) -> usize

Source§

impl Code for i8

Source§

fn encode(&self, writer: &mut impl Write) -> Result<(), CodeError>

Source§

fn decode(reader: &mut impl Read) -> Result<Self, CodeError>

Source§

fn estimated_size(&self) -> usize

Source§

impl Code for i16

Source§

fn encode(&self, writer: &mut impl Write) -> Result<(), CodeError>

Source§

fn decode(reader: &mut impl Read) -> Result<Self, CodeError>

Source§

fn estimated_size(&self) -> usize

Source§

impl Code for i32

Source§

fn encode(&self, writer: &mut impl Write) -> Result<(), CodeError>

Source§

fn decode(reader: &mut impl Read) -> Result<Self, CodeError>

Source§

fn estimated_size(&self) -> usize

Source§

impl Code for i64

Source§

fn encode(&self, writer: &mut impl Write) -> Result<(), CodeError>

Source§

fn decode(reader: &mut impl Read) -> Result<Self, CodeError>

Source§

fn estimated_size(&self) -> usize

Source§

impl Code for i128

Source§

fn encode(&self, writer: &mut impl Write) -> Result<(), CodeError>

Source§

fn decode(reader: &mut impl Read) -> Result<Self, CodeError>

Source§

fn estimated_size(&self) -> usize

Source§

impl Code for isize

Source§

fn encode(&self, writer: &mut impl Write) -> Result<(), CodeError>

Source§

fn decode(reader: &mut impl Read) -> Result<Self, CodeError>

Source§

fn estimated_size(&self) -> usize

Source§

impl Code for u8

Source§

fn encode(&self, writer: &mut impl Write) -> Result<(), CodeError>

Source§

fn decode(reader: &mut impl Read) -> Result<Self, CodeError>

Source§

fn estimated_size(&self) -> usize

Source§

impl Code for u16

Source§

fn encode(&self, writer: &mut impl Write) -> Result<(), CodeError>

Source§

fn decode(reader: &mut impl Read) -> Result<Self, CodeError>

Source§

fn estimated_size(&self) -> usize

Source§

impl Code for u32

Source§

fn encode(&self, writer: &mut impl Write) -> Result<(), CodeError>

Source§

fn decode(reader: &mut impl Read) -> Result<Self, CodeError>

Source§

fn estimated_size(&self) -> usize

Source§

impl Code for u64

Source§

fn encode(&self, writer: &mut impl Write) -> Result<(), CodeError>

Source§

fn decode(reader: &mut impl Read) -> Result<Self, CodeError>

Source§

fn estimated_size(&self) -> usize

Source§

impl Code for u128

Source§

fn encode(&self, writer: &mut impl Write) -> Result<(), CodeError>

Source§

fn decode(reader: &mut impl Read) -> Result<Self, CodeError>

Source§

fn estimated_size(&self) -> usize

Source§

impl Code for usize

Source§

fn encode(&self, writer: &mut impl Write) -> Result<(), CodeError>

Source§

fn decode(reader: &mut impl Read) -> Result<Self, CodeError>

Source§

fn estimated_size(&self) -> usize

Source§

impl Code for String

Source§

fn encode(&self, writer: &mut impl Write) -> Result<(), CodeError>

Source§

fn decode(reader: &mut impl Read) -> Result<Self, CodeError>
where Self: Sized,

Source§

fn estimated_size(&self) -> usize

Source§

impl Code for Vec<u8>

Source§

fn encode(&self, writer: &mut impl Write) -> Result<(), CodeError>

Source§

fn decode(reader: &mut impl Read) -> Result<Self, CodeError>
where Self: Sized,

Source§

fn estimated_size(&self) -> usize

Implementors§