Trait bincode::de::read::BincodeRead

source ·
pub trait BincodeRead<'storage>: Read {
    // Required methods
    fn forward_read_str<V>(
        &mut self,
        length: usize,
        visitor: V,
    ) -> Result<V::Value>
       where V: Visitor<'storage>;
    fn get_byte_buffer(&mut self, length: usize) -> Result<Vec<u8>>;
    fn forward_read_bytes<V>(
        &mut self,
        length: usize,
        visitor: V,
    ) -> Result<V::Value>
       where V: Visitor<'storage>;
}
Expand description

An optional Read trait for advanced Bincode usage.

It is highly recommended to use bincode with io::Read or &[u8] before implementing a custom BincodeRead.

The forward_read_* methods are necessary because some byte sources want to pass a long-lived borrow to the visitor and others want to pass a transient slice.

Required Methods§

source

fn forward_read_str<V>(&mut self, length: usize, visitor: V) -> Result<V::Value>
where V: Visitor<'storage>,

Check that the next length bytes are a valid string and pass it on to the serde reader.

source

fn get_byte_buffer(&mut self, length: usize) -> Result<Vec<u8>>

Transfer ownership of the next length bytes to the caller.

source

fn forward_read_bytes<V>( &mut self, length: usize, visitor: V, ) -> Result<V::Value>
where V: Visitor<'storage>,

Pass a slice of the next length bytes on to the serde reader.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<'a, R> BincodeRead<'a> for IoReader<R>
where R: Read,

source§

impl<'storage> BincodeRead<'storage> for SliceReader<'storage>