Trait TupleUnpack

pub trait TupleUnpack<'de>: Sized {
    // Required method
    fn unpack(
        input: &'de [u8],
        tuple_depth: TupleDepth,
    ) -> Result<(&'de [u8], Self), PackError>;

    // Provided method
    fn unpack_root(input: &'de [u8]) -> Result<Self, PackError> { ... }
}
Expand description

A type that can be unpacked

Required Methods§

fn unpack( input: &'de [u8], tuple_depth: TupleDepth, ) -> Result<(&'de [u8], Self), PackError>

Provided Methods§

fn unpack_root(input: &'de [u8]) -> Result<Self, PackError>

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§

§

impl TupleUnpack<'_> for bool

§

fn unpack( input: &[u8], _tuple_depth: TupleDepth, ) -> Result<(&[u8], bool), PackError>

§

impl TupleUnpack<'_> for ()

§

fn unpack( input: &[u8], tuple_depth: TupleDepth, ) -> Result<(&[u8], ()), PackError>

§

impl TupleUnpack<'_> for String

§

fn unpack( input: &[u8], _tuple_depth: TupleDepth, ) -> Result<(&[u8], String), PackError>

§

impl TupleUnpack<'_> for BigInt

§

fn unpack( input: &[u8], _tuple_depth: TupleDepth, ) -> Result<(&[u8], BigInt), PackError>

§

impl TupleUnpack<'_> for BigUint

§

fn unpack( input: &[u8], _tuple_depth: TupleDepth, ) -> Result<(&[u8], BigUint), PackError>

§

impl<'de> TupleUnpack<'de> for Cow<'de, str>

§

fn unpack( input: &'de [u8], _tuple_depth: TupleDepth, ) -> Result<(&'de [u8], Cow<'de, str>), PackError>

§

impl<'de> TupleUnpack<'de> for f32

§

fn unpack( input: &[u8], _tuple_depth: TupleDepth, ) -> Result<(&[u8], f32), PackError>

§

impl<'de> TupleUnpack<'de> for f64

§

fn unpack( input: &[u8], _tuple_depth: TupleDepth, ) -> Result<(&[u8], f64), PackError>

§

impl<'de> TupleUnpack<'de> for i16

§

fn unpack( input: &[u8], _tuple_depth: TupleDepth, ) -> Result<(&[u8], i16), PackError>

§

impl<'de> TupleUnpack<'de> for i32

§

fn unpack( input: &[u8], _tuple_depth: TupleDepth, ) -> Result<(&[u8], i32), PackError>

§

impl<'de> TupleUnpack<'de> for i64

§

fn unpack( input: &[u8], _tuple_depth: TupleDepth, ) -> Result<(&[u8], i64), PackError>

§

impl<'de> TupleUnpack<'de> for i128

§

fn unpack( input: &[u8], _tuple_depth: TupleDepth, ) -> Result<(&[u8], i128), PackError>

§

impl<'de> TupleUnpack<'de> for isize

§

fn unpack( input: &[u8], _tuple_depth: TupleDepth, ) -> Result<(&[u8], isize), PackError>

§

impl<'de> TupleUnpack<'de> for u16

§

fn unpack( input: &[u8], _tuple_depth: TupleDepth, ) -> Result<(&[u8], u16), PackError>

§

impl<'de> TupleUnpack<'de> for u32

§

fn unpack( input: &[u8], _tuple_depth: TupleDepth, ) -> Result<(&[u8], u32), PackError>

§

impl<'de> TupleUnpack<'de> for u64

§

fn unpack( input: &[u8], _tuple_depth: TupleDepth, ) -> Result<(&[u8], u64), PackError>

§

impl<'de> TupleUnpack<'de> for u128

§

fn unpack( input: &[u8], _tuple_depth: TupleDepth, ) -> Result<(&[u8], u128), PackError>

§

impl<'de> TupleUnpack<'de> for usize

§

fn unpack( input: &[u8], _tuple_depth: TupleDepth, ) -> Result<(&[u8], usize), PackError>

§

impl<'de> TupleUnpack<'de> for Vec<u8>

§

fn unpack( input: &'de [u8], tuple_depth: TupleDepth, ) -> Result<(&'de [u8], Vec<u8>), PackError>

§

impl<'de, T0> TupleUnpack<'de> for (T0,)
where T0: TupleUnpack<'de>,

§

fn unpack( input: &'de [u8], tuple_depth: TupleDepth, ) -> Result<(&'de [u8], (T0,)), PackError>

§

impl<'de, T0, T1> TupleUnpack<'de> for (T0, T1)
where T0: TupleUnpack<'de>, T1: TupleUnpack<'de>,

§

fn unpack( input: &'de [u8], tuple_depth: TupleDepth, ) -> Result<(&'de [u8], (T0, T1)), PackError>

§

impl<'de, T0, T1, T2> TupleUnpack<'de> for (T0, T1, T2)
where T0: TupleUnpack<'de>, T1: TupleUnpack<'de>, T2: TupleUnpack<'de>,

§

fn unpack( input: &'de [u8], tuple_depth: TupleDepth, ) -> Result<(&'de [u8], (T0, T1, T2)), PackError>

§

impl<'de, T0, T1, T2, T3> TupleUnpack<'de> for (T0, T1, T2, T3)
where T0: TupleUnpack<'de>, T1: TupleUnpack<'de>, T2: TupleUnpack<'de>, T3: TupleUnpack<'de>,

§

fn unpack( input: &'de [u8], tuple_depth: TupleDepth, ) -> Result<(&'de [u8], (T0, T1, T2, T3)), PackError>

§

impl<'de, T0, T1, T2, T3, T4> TupleUnpack<'de> for (T0, T1, T2, T3, T4)
where T0: TupleUnpack<'de>, T1: TupleUnpack<'de>, T2: TupleUnpack<'de>, T3: TupleUnpack<'de>, T4: TupleUnpack<'de>,

§

fn unpack( input: &'de [u8], tuple_depth: TupleDepth, ) -> Result<(&'de [u8], (T0, T1, T2, T3, T4)), PackError>

§

impl<'de, T0, T1, T2, T3, T4, T5> TupleUnpack<'de> for (T0, T1, T2, T3, T4, T5)
where T0: TupleUnpack<'de>, T1: TupleUnpack<'de>, T2: TupleUnpack<'de>, T3: TupleUnpack<'de>, T4: TupleUnpack<'de>, T5: TupleUnpack<'de>,

§

fn unpack( input: &'de [u8], tuple_depth: TupleDepth, ) -> Result<(&'de [u8], (T0, T1, T2, T3, T4, T5)), PackError>

§

impl<'de, T0, T1, T2, T3, T4, T5, T6> TupleUnpack<'de> for (T0, T1, T2, T3, T4, T5, T6)
where T0: TupleUnpack<'de>, T1: TupleUnpack<'de>, T2: TupleUnpack<'de>, T3: TupleUnpack<'de>, T4: TupleUnpack<'de>, T5: TupleUnpack<'de>, T6: TupleUnpack<'de>,

§

fn unpack( input: &'de [u8], tuple_depth: TupleDepth, ) -> Result<(&'de [u8], (T0, T1, T2, T3, T4, T5, T6)), PackError>

§

impl<'de, T0, T1, T2, T3, T4, T5, T6, T7> TupleUnpack<'de> for (T0, T1, T2, T3, T4, T5, T6, T7)
where T0: TupleUnpack<'de>, T1: TupleUnpack<'de>, T2: TupleUnpack<'de>, T3: TupleUnpack<'de>, T4: TupleUnpack<'de>, T5: TupleUnpack<'de>, T6: TupleUnpack<'de>, T7: TupleUnpack<'de>,

§

fn unpack( input: &'de [u8], tuple_depth: TupleDepth, ) -> Result<(&'de [u8], (T0, T1, T2, T3, T4, T5, T6, T7)), PackError>

§

impl<'de, T0, T1, T2, T3, T4, T5, T6, T7, T8> TupleUnpack<'de> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
where T0: TupleUnpack<'de>, T1: TupleUnpack<'de>, T2: TupleUnpack<'de>, T3: TupleUnpack<'de>, T4: TupleUnpack<'de>, T5: TupleUnpack<'de>, T6: TupleUnpack<'de>, T7: TupleUnpack<'de>, T8: TupleUnpack<'de>,

§

fn unpack( input: &'de [u8], tuple_depth: TupleDepth, ) -> Result<(&'de [u8], (T0, T1, T2, T3, T4, T5, T6, T7, T8)), PackError>

§

impl<'de, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> TupleUnpack<'de> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
where T0: TupleUnpack<'de>, T1: TupleUnpack<'de>, T2: TupleUnpack<'de>, T3: TupleUnpack<'de>, T4: TupleUnpack<'de>, T5: TupleUnpack<'de>, T6: TupleUnpack<'de>, T7: TupleUnpack<'de>, T8: TupleUnpack<'de>, T9: TupleUnpack<'de>,

§

fn unpack( input: &'de [u8], tuple_depth: TupleDepth, ) -> Result<(&'de [u8], (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)), PackError>

§

impl<'de, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> TupleUnpack<'de> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
where T0: TupleUnpack<'de>, T1: TupleUnpack<'de>, T2: TupleUnpack<'de>, T3: TupleUnpack<'de>, T4: TupleUnpack<'de>, T5: TupleUnpack<'de>, T6: TupleUnpack<'de>, T7: TupleUnpack<'de>, T8: TupleUnpack<'de>, T9: TupleUnpack<'de>, T10: TupleUnpack<'de>,

§

fn unpack( input: &'de [u8], tuple_depth: TupleDepth, ) -> Result<(&'de [u8], (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)), PackError>

§

impl<'de, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> TupleUnpack<'de> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
where T0: TupleUnpack<'de>, T1: TupleUnpack<'de>, T2: TupleUnpack<'de>, T3: TupleUnpack<'de>, T4: TupleUnpack<'de>, T5: TupleUnpack<'de>, T6: TupleUnpack<'de>, T7: TupleUnpack<'de>, T8: TupleUnpack<'de>, T9: TupleUnpack<'de>, T10: TupleUnpack<'de>, T11: TupleUnpack<'de>,

§

impl<'de, T> TupleUnpack<'de> for Option<T>
where T: TupleUnpack<'de>,

§

fn unpack( input: &'de [u8], tuple_depth: TupleDepth, ) -> Result<(&'de [u8], Option<T>), PackError>

§

impl<'de, T> TupleUnpack<'de> for Vec<T>
where T: TupleUnpack<'de>,

§

fn unpack( input: &'de [u8], tuple_depth: TupleDepth, ) -> Result<(&'de [u8], Vec<T>), PackError>

Implementors§

§

impl TupleUnpack<'_> for Uuid

§

impl TupleUnpack<'_> for Versionstamp

§

impl<'de> TupleUnpack<'de> for Element<'de>

§

impl<'de> TupleUnpack<'de> for Bytes<'de>