pub trait NestedDecodeInput {
    // Required methods
    fn remaining_len(&self) -> usize;
    fn read_into(&mut self, into: &mut [u8]) -> Result<(), DecodeError>;
    fn read_into_or_exit<ExitCtx: Clone>(
        &mut self,
        into: &mut [u8],
        c: ExitCtx,
        exit: fn(_: ExitCtx, _: DecodeError) -> !
    );

    // Provided methods
    fn is_depleted(&self) -> bool { ... }
    fn read_specialized<T, C, F>(
        &mut self,
        _context: C,
        else_deser: F
    ) -> Result<T, DecodeError>
       where T: TryStaticCast,
             C: TryStaticCast,
             F: FnOnce(&mut Self) -> Result<T, DecodeError> { ... }
    fn read_specialized_or_exit<T, C, ExitCtx, F>(
        &mut self,
        _context: C,
        c: ExitCtx,
        _exit: fn(_: ExitCtx, _: DecodeError) -> !,
        else_deser: F
    ) -> T
       where T: TryStaticCast,
             C: TryStaticCast,
             F: FnOnce(&mut Self, ExitCtx) -> T,
             ExitCtx: Clone { ... }
    fn read_byte(&mut self) -> Result<u8, DecodeError> { ... }
    fn read_byte_or_exit<ExitCtx: Clone>(
        &mut self,
        c: ExitCtx,
        exit: fn(_: ExitCtx, _: DecodeError) -> !
    ) -> u8 { ... }
}
Expand description

Trait that allows deserializing objects from a buffer.

Required Methods§

source

fn remaining_len(&self) -> usize

The remaining length of the input data.

source

fn read_into(&mut self, into: &mut [u8]) -> Result<(), DecodeError>

Read the exact number of bytes required to fill the given buffer.

source

fn read_into_or_exit<ExitCtx: Clone>( &mut self, into: &mut [u8], c: ExitCtx, exit: fn(_: ExitCtx, _: DecodeError) -> ! )

Read the exact number of bytes required to fill the given buffer. Exit early if there are not enough bytes to fill the result.

Provided Methods§

source

fn is_depleted(&self) -> bool

True if all data from the buffer has already been used.

source

fn read_specialized<T, C, F>( &mut self, _context: C, else_deser: F ) -> Result<T, DecodeError>

source

fn read_specialized_or_exit<T, C, ExitCtx, F>( &mut self, _context: C, c: ExitCtx, _exit: fn(_: ExitCtx, _: DecodeError) -> !, else_deser: F ) -> T
where T: TryStaticCast, C: TryStaticCast, F: FnOnce(&mut Self, ExitCtx) -> T, ExitCtx: Clone,

source

fn read_byte(&mut self) -> Result<u8, DecodeError>

Read a single byte from the input.

source

fn read_byte_or_exit<ExitCtx: Clone>( &mut self, c: ExitCtx, exit: fn(_: ExitCtx, _: DecodeError) -> ! ) -> u8

Read a single byte from the input.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<'a> NestedDecodeInput for &'a [u8]

A nested decode buffer implementation on referenced data.

source§

fn remaining_len(&self) -> usize

source§

fn read_into(&mut self, into: &mut [u8]) -> Result<(), DecodeError>

source§

fn read_into_or_exit<ExitCtx: Clone>( &mut self, into: &mut [u8], c: ExitCtx, exit: fn(_: ExitCtx, _: DecodeError) -> ! )

Implementors§