Trait epserde::deser::DeserializeHelper

source ·
pub trait DeserializeHelper<T: CopySelector> {
    type FullType;
    type DeserType<'a>;

    // Required methods
    fn _deserialize_full_inner_impl(
        backend: &mut impl ReadWithPos
    ) -> Result<Self::FullType>;
    fn _deserialize_eps_inner_impl<'a>(
        backend: &mut SliceWithPos<'a>
    ) -> Result<Self::DeserType<'a>>;
}
Expand description

A helper trait that makes it possible to implement differently deserialization for crate::traits::ZeroCopy and crate::traits::DeepCopy types. See crate::traits::CopyType for more information.

Required Associated Types§

Required Methods§

source

fn _deserialize_full_inner_impl( backend: &mut impl ReadWithPos ) -> Result<Self::FullType>

source

fn _deserialize_eps_inner_impl<'a>( backend: &mut SliceWithPos<'a> ) -> Result<Self::DeserType<'a>>

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<T: DeepCopy + DeserializeInner + 'static> DeserializeHelper<Deep> for Box<[T]>

§

type FullType = Box<[T]>

§

type DeserType<'a> = Box<[<T as DeserializeInner>::DeserType<'a>]>

source§

fn _deserialize_full_inner_impl(backend: &mut impl ReadWithPos) -> Result<Self>

source§

fn _deserialize_eps_inner_impl<'a>( backend: &mut SliceWithPos<'a> ) -> Result<<Self as DeserializeInner>::DeserType<'a>>

source§

impl<T: DeepCopy + DeserializeInner + 'static> DeserializeHelper<Deep> for Vec<T>

§

type FullType = Vec<T>

§

type DeserType<'a> = Vec<<T as DeserializeInner>::DeserType<'a>>

source§

fn _deserialize_full_inner_impl(backend: &mut impl ReadWithPos) -> Result<Self>

source§

fn _deserialize_eps_inner_impl<'a>( backend: &mut SliceWithPos<'a> ) -> Result<<Self as DeserializeInner>::DeserType<'a>>

source§

impl<T: DeepCopy + DeserializeInner + 'static, const N: usize> DeserializeHelper<Deep> for [T; N]

source§

impl<T: ZeroCopy + DeserializeInner + 'static> DeserializeHelper<Zero> for Box<[T]>

§

type FullType = Box<[T]>

§

type DeserType<'a> = &'a [T]

source§

fn _deserialize_full_inner_impl(backend: &mut impl ReadWithPos) -> Result<Self>

source§

fn _deserialize_eps_inner_impl<'a>( backend: &mut SliceWithPos<'a> ) -> Result<<Self as DeserializeInner>::DeserType<'a>>

source§

impl<T: ZeroCopy + DeserializeInner + 'static> DeserializeHelper<Zero> for Vec<T>

§

type FullType = Vec<T>

§

type DeserType<'a> = &'a [T]

source§

fn _deserialize_full_inner_impl(backend: &mut impl ReadWithPos) -> Result<Self>

source§

fn _deserialize_eps_inner_impl<'a>( backend: &mut SliceWithPos<'a> ) -> Result<<Self as DeserializeInner>::DeserType<'a>>

source§

impl<T: ZeroCopy + DeserializeInner + 'static, const N: usize> DeserializeHelper<Zero> for [T; N]

Implementors§