Trait TupleUnpack

Source
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§

Source

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

Provided Methods§

Source

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§

Source§

impl TupleUnpack<'_> for bool

Source§

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

Source§

impl TupleUnpack<'_> for ()

Source§

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

Source§

impl TupleUnpack<'_> for String

Source§

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

Source§

impl TupleUnpack<'_> for BigInt

Source§

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

Source§

impl TupleUnpack<'_> for BigUint

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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>,

Source§

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

Source§

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>,

Source§

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

Source§

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>,

Source§

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

Source§

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>,

Source§

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

Source§

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>,

Source§

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

Source§

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>,

Source§

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

Source§

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>,

Source§

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

Source§

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>,

Source§

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>,

Source§

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

Source§

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

Source§

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

Source§

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

Implementors§

Source§

impl TupleUnpack<'_> for Uuid

Source§

impl TupleUnpack<'_> for Versionstamp

Source§

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

Source§

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