pub trait NestedDecodeInput {
    // Required methods
    fn remaining_len(&mut 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) -> !
    );
    fn read_slice(&mut self, length: usize) -> Result<&[u8], DecodeError>;
    fn read_slice_or_exit<ExitCtx: Clone>(
        &mut self,
        length: usize,
        c: ExitCtx,
        exit: fn(_: ExitCtx, _: DecodeError) -> !
    ) -> &[u8];
    fn flush(&mut self) -> &[u8];

    // Provided methods
    fn empty(&mut self) -> bool { ... }
    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 reading of data into a slice.

Required Methods§

source

fn remaining_len(&mut 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.

source

fn read_slice(&mut self, length: usize) -> Result<&[u8], DecodeError>

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

source

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

Read the exact number of bytes required to fill the given buffer. Exit directly if the input contains too few bytes.

source

fn flush(&mut self) -> &[u8]

Clears the input buffer and returns all remaining bytes.

Provided Methods§

source

fn empty(&mut self) -> bool

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]

source§

fn remaining_len(&mut 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) -> ! )

source§

fn read_slice(&mut self, length: usize) -> Result<&[u8], DecodeError>

source§

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

source§

fn flush(&mut self) -> &[u8]

Implementors§