pub trait TopDecodeInput: Sized {
    type NestedBuffer: NestedDecodeInput;

    // Required methods
    fn byte_len(&self) -> usize;
    fn into_boxed_slice_u8(self) -> Box<[u8]>;
    fn into_max_size_buffer<H, const MAX_LEN: usize>(
        self,
        buffer: &mut [u8; MAX_LEN],
        h: H
    ) -> Result<&[u8], H::HandledErr>
       where H: DecodeErrorHandler;
    fn into_nested_buffer(self) -> Self::NestedBuffer;

    // Provided methods
    fn into_u64<H>(self, h: H) -> Result<u64, H::HandledErr>
       where H: DecodeErrorHandler { ... }
    fn into_i64<H>(self, h: H) -> Result<i64, H::HandledErr>
       where H: DecodeErrorHandler { ... }
    fn supports_specialized_type<T: TryStaticCast>() -> bool { ... }
    fn into_specialized<T, H>(self, h: H) -> Result<T, H::HandledErr>
       where T: TryStaticCast,
             H: DecodeErrorHandler { ... }
}
Expand description

Trait that abstracts away an underlying API for a top-level object deserializer. The underlying API can provide pre-parsed i64/u64 or pre-bundled boxed slices.

Required Associated Types§

Required Methods§

source

fn byte_len(&self) -> usize

Length of the underlying data, in bytes.

source

fn into_boxed_slice_u8(self) -> Box<[u8]>

Provides the underlying data as an owned byte slice box. Consumes the input object in the process.

source

fn into_max_size_buffer<H, const MAX_LEN: usize>( self, buffer: &mut [u8; MAX_LEN], h: H ) -> Result<&[u8], H::HandledErr>

Puts the underlying data into a fixed size byte buffer and returns the populated data slice from this buffer.

Will return an error if the data exceeds the provided buffer.

source

fn into_nested_buffer(self) -> Self::NestedBuffer

Provided Methods§

source

fn into_u64<H>(self, h: H) -> Result<u64, H::HandledErr>

Retrieves the underlying data as a pre-parsed u64. Expected to panic if the conversion is not possible.

Consumes the input object in the process.

source

fn into_i64<H>(self, h: H) -> Result<i64, H::HandledErr>

Retrieves the underlying data as a pre-parsed i64. Expected to panic if the conversion is not possible.

Consumes the input object in the process.

source

fn supports_specialized_type<T: TryStaticCast>() -> bool

source

fn into_specialized<T, H>(self, h: H) -> Result<T, H::HandledErr>

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl TopDecodeInput for Box<[u8]>

source§

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

§

type NestedBuffer = &'a [u8]

source§

fn byte_len(&self) -> usize

source§

fn into_boxed_slice_u8(self) -> Box<[u8]>

source§

fn into_max_size_buffer<H, const MAX_LEN: usize>( self, buffer: &mut [u8; MAX_LEN], h: H ) -> Result<&[u8], H::HandledErr>

source§

fn into_u64<H>(self, _h: H) -> Result<u64, H::HandledErr>

source§

fn into_i64<H>(self, _h: H) -> Result<i64, H::HandledErr>

source§

fn into_nested_buffer(self) -> Self::NestedBuffer

Implementors§