Trait Variable

Source
pub trait Variable: Sized {
    // Required methods
    fn encode_variable<W: Write>(&self, destination: W) -> Result<usize>;
    fn decode_variable<R: Read>(source: R) -> Result<Self>;

    // Provided method
    fn to_variable_vec(&self) -> Result<Vec<u8>> { ... }
}
Expand description

Encodes and decodes a type using a variable-length format.

Required Methods§

Source

fn encode_variable<W: Write>(&self, destination: W) -> Result<usize>

Encodes self into destination, returning the number of bytes written upon success.

Source

fn decode_variable<R: Read>(source: R) -> Result<Self>

Decodes a variable length value from source.

Provided Methods§

Source

fn to_variable_vec(&self) -> Result<Vec<u8>>

Encodes self into a new Vec<u8>.

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 Variable for i8

Source§

fn encode_variable<W: Write>(&self, destination: W) -> Result<usize>

Source§

fn decode_variable<R: Read>(source: R) -> Result<Self>

Source§

impl Variable for i16

Source§

fn encode_variable<W: Write>(&self, destination: W) -> Result<usize>

Source§

fn decode_variable<R: Read>(source: R) -> Result<Self>

Source§

impl Variable for i32

Source§

fn encode_variable<W: Write>(&self, destination: W) -> Result<usize>

Source§

fn decode_variable<R: Read>(source: R) -> Result<Self>

Source§

impl Variable for i64

Source§

fn encode_variable<W: Write>(&self, destination: W) -> Result<usize>

Source§

fn decode_variable<R: Read>(source: R) -> Result<Self>

Source§

impl Variable for i128

Source§

fn encode_variable<W: Write>(&self, destination: W) -> Result<usize>

Source§

fn decode_variable<R: Read>(source: R) -> Result<Self>

Source§

impl Variable for isize

Source§

fn encode_variable<W: Write>(&self, destination: W) -> Result<usize>

Source§

fn decode_variable<R: Read>(source: R) -> Result<Self>

Source§

impl Variable for u8

Source§

fn encode_variable<W: Write>(&self, destination: W) -> Result<usize>

Source§

fn decode_variable<R: Read>(source: R) -> Result<Self>

Source§

impl Variable for u16

Source§

fn encode_variable<W: Write>(&self, destination: W) -> Result<usize>

Source§

fn decode_variable<R: Read>(source: R) -> Result<Self>

Source§

impl Variable for u32

Source§

fn encode_variable<W: Write>(&self, destination: W) -> Result<usize>

Source§

fn decode_variable<R: Read>(source: R) -> Result<Self>

Source§

impl Variable for u64

Source§

fn encode_variable<W: Write>(&self, destination: W) -> Result<usize>

Source§

fn decode_variable<R: Read>(source: R) -> Result<Self>

Source§

impl Variable for u128

Source§

fn encode_variable<W: Write>(&self, destination: W) -> Result<usize>

Source§

fn decode_variable<R: Read>(source: R) -> Result<Self>

Source§

impl Variable for usize

Source§

fn encode_variable<W: Write>(&self, destination: W) -> Result<usize>

Source§

fn decode_variable<R: Read>(source: R) -> Result<Self>

Implementors§