BitUnpackAs

Trait BitUnpackAs 

Source
pub trait BitUnpackAs<'de, T> {
    // Required method
    fn unpack_as<R>(reader: R) -> Result<T, R::Error>
       where R: BitReader<'de>;
}
Expand description

Adapter to deserialize T.
See as module-level documentation for more.

For dynamic arguments, see BitUnackAsWithArgs.

Required Methods§

Source

fn unpack_as<R>(reader: R) -> Result<T, R::Error>
where R: BitReader<'de>,

Unpacks value using an adapter

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<'de, 'a, T, As> BitUnpackAs<'de, Cow<'a, T>> for Cow<'a, As>
where T: ToOwned + ?Sized, As: ToOwned + ?Sized, As::Owned: BitUnpackAs<'de, T::Owned>,

Always unpacks as Cow::Owned

Source§

fn unpack_as<R>(reader: R) -> Result<Cow<'a, T>, R::Error>
where R: BitReader<'de>,

Source§

impl<'de, Left, Right, AsLeft, AsRight> BitUnpackAs<'de, Either<Left, Right>> for Either<AsLeft, AsRight>
where AsLeft: BitUnpackAs<'de, Left>, AsRight: BitUnpackAs<'de, Right>,

Implementation of Either X Y:

left$0 {X:Type} {Y:Type} value:X = Either X Y;
right$1 {X:Type} {Y:Type} value:Y = Either X Y;
Source§

fn unpack_as<R>(reader: R) -> Result<Either<Left, Right>, R::Error>
where R: BitReader<'de>,

Source§

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

Source§

fn unpack_as<R>(reader: R) -> Result<(T0,), R::Error>
where R: BitReader<'de>,

Source§

impl<'de, T0, As0, T1, As1> BitUnpackAs<'de, (T0, T1)> for (As0, As1)
where As0: BitUnpackAs<'de, T0>, As1: BitUnpackAs<'de, T1>,

Source§

fn unpack_as<R>(reader: R) -> Result<(T0, T1), R::Error>
where R: BitReader<'de>,

Source§

impl<'de, T0, As0, T1, As1, T2, As2> BitUnpackAs<'de, (T0, T1, T2)> for (As0, As1, As2)
where As0: BitUnpackAs<'de, T0>, As1: BitUnpackAs<'de, T1>, As2: BitUnpackAs<'de, T2>,

Source§

fn unpack_as<R>(reader: R) -> Result<(T0, T1, T2), R::Error>
where R: BitReader<'de>,

Source§

impl<'de, T0, As0, T1, As1, T2, As2, T3, As3> BitUnpackAs<'de, (T0, T1, T2, T3)> for (As0, As1, As2, As3)
where As0: BitUnpackAs<'de, T0>, As1: BitUnpackAs<'de, T1>, As2: BitUnpackAs<'de, T2>, As3: BitUnpackAs<'de, T3>,

Source§

fn unpack_as<R>(reader: R) -> Result<(T0, T1, T2, T3), R::Error>
where R: BitReader<'de>,

Source§

impl<'de, T0, As0, T1, As1, T2, As2, T3, As3, T4, As4> BitUnpackAs<'de, (T0, T1, T2, T3, T4)> for (As0, As1, As2, As3, As4)
where As0: BitUnpackAs<'de, T0>, As1: BitUnpackAs<'de, T1>, As2: BitUnpackAs<'de, T2>, As3: BitUnpackAs<'de, T3>, As4: BitUnpackAs<'de, T4>,

Source§

fn unpack_as<R>(reader: R) -> Result<(T0, T1, T2, T3, T4), R::Error>
where R: BitReader<'de>,

Source§

impl<'de, T0, As0, T1, As1, T2, As2, T3, As3, T4, As4, T5, As5> BitUnpackAs<'de, (T0, T1, T2, T3, T4, T5)> for (As0, As1, As2, As3, As4, As5)
where As0: BitUnpackAs<'de, T0>, As1: BitUnpackAs<'de, T1>, As2: BitUnpackAs<'de, T2>, As3: BitUnpackAs<'de, T3>, As4: BitUnpackAs<'de, T4>, As5: BitUnpackAs<'de, T5>,

Source§

fn unpack_as<R>(reader: R) -> Result<(T0, T1, T2, T3, T4, T5), R::Error>
where R: BitReader<'de>,

Source§

impl<'de, T0, As0, T1, As1, T2, As2, T3, As3, T4, As4, T5, As5, T6, As6> BitUnpackAs<'de, (T0, T1, T2, T3, T4, T5, T6)> for (As0, As1, As2, As3, As4, As5, As6)
where As0: BitUnpackAs<'de, T0>, As1: BitUnpackAs<'de, T1>, As2: BitUnpackAs<'de, T2>, As3: BitUnpackAs<'de, T3>, As4: BitUnpackAs<'de, T4>, As5: BitUnpackAs<'de, T5>, As6: BitUnpackAs<'de, T6>,

Source§

impl<'de, T0, As0, T1, As1, T2, As2, T3, As3, T4, As4, T5, As5, T6, As6, T7, As7> BitUnpackAs<'de, (T0, T1, T2, T3, T4, T5, T6, T7)> for (As0, As1, As2, As3, As4, As5, As6, As7)
where As0: BitUnpackAs<'de, T0>, As1: BitUnpackAs<'de, T1>, As2: BitUnpackAs<'de, T2>, As3: BitUnpackAs<'de, T3>, As4: BitUnpackAs<'de, T4>, As5: BitUnpackAs<'de, T5>, As6: BitUnpackAs<'de, T6>, As7: BitUnpackAs<'de, T7>,

Source§

impl<'de, T0, As0, T1, As1, T2, As2, T3, As3, T4, As4, T5, As5, T6, As6, T7, As7, T8, As8> BitUnpackAs<'de, (T0, T1, T2, T3, T4, T5, T6, T7, T8)> for (As0, As1, As2, As3, As4, As5, As6, As7, As8)
where As0: BitUnpackAs<'de, T0>, As1: BitUnpackAs<'de, T1>, As2: BitUnpackAs<'de, T2>, As3: BitUnpackAs<'de, T3>, As4: BitUnpackAs<'de, T4>, As5: BitUnpackAs<'de, T5>, As6: BitUnpackAs<'de, T6>, As7: BitUnpackAs<'de, T7>, As8: BitUnpackAs<'de, T8>,

Source§

impl<'de, T0, As0, T1, As1, T2, As2, T3, As3, T4, As4, T5, As5, T6, As6, T7, As7, T8, As8, T9, As9> BitUnpackAs<'de, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> for (As0, As1, As2, As3, As4, As5, As6, As7, As8, As9)
where As0: BitUnpackAs<'de, T0>, As1: BitUnpackAs<'de, T1>, As2: BitUnpackAs<'de, T2>, As3: BitUnpackAs<'de, T3>, As4: BitUnpackAs<'de, T4>, As5: BitUnpackAs<'de, T5>, As6: BitUnpackAs<'de, T6>, As7: BitUnpackAs<'de, T7>, As8: BitUnpackAs<'de, T8>, As9: BitUnpackAs<'de, T9>,

Source§

impl<'de, T, As> BitUnpackAs<'de, Option<T>> for Option<As>
where As: BitUnpackAs<'de, T>,

Implementation of Maybe X:

nothing$0 {X:Type} = Maybe X;
just$1 {X:Type} value:X = Maybe X;
Source§

fn unpack_as<R>(reader: R) -> Result<Option<T>, R::Error>
where R: BitReader<'de>,

Source§

impl<'de, T, As> BitUnpackAs<'de, Option<T>> for Either<(), As>
where As: BitUnpackAs<'de, T>,

Source§

fn unpack_as<R>(reader: R) -> Result<Option<T>, R::Error>
where R: BitReader<'de>,

Source§

impl<'de, T, As> BitUnpackAs<'de, Box<T>> for Box<As>
where As: BitUnpackAs<'de, T> + ?Sized,

Source§

fn unpack_as<R>(reader: R) -> Result<Box<T>, R::Error>
where R: BitReader<'de>,

Source§

impl<'de, T, As> BitUnpackAs<'de, Rc<T>> for Rc<As>
where As: BitUnpackAs<'de, T> + ?Sized,

Source§

fn unpack_as<R>(reader: R) -> Result<Rc<T>, R::Error>
where R: BitReader<'de>,

Source§

impl<'de, T, As> BitUnpackAs<'de, Arc<T>> for Arc<As>
where As: BitUnpackAs<'de, T> + ?Sized,

Source§

fn unpack_as<R>(reader: R) -> Result<Arc<T>, R::Error>
where R: BitReader<'de>,

Source§

impl<'de, T, As, const N: usize> BitUnpackAs<'de, [T; N]> for [As; N]
where As: BitUnpackAs<'de, T>,

Source§

fn unpack_as<R>(reader: R) -> Result<[T; N], R::Error>
where R: BitReader<'de>,

Implementors§

Source§

impl<'de> BitUnpackAs<'de, String> for Remainder

Source§

impl<'de> BitUnpackAs<'de, Vec<u8>> for Remainder

Source§

impl<'de> BitUnpackAs<'de, BitVec<u8, Msb0>> for Remainder

Source§

impl<'de, T> BitUnpackAs<'de, T> for Same
where T: BitUnpack<'de>,

Source§

impl<'de, T> BitUnpackAs<'de, T> for Unary
where T: Unsigned + ConstZero + One,

Source§

impl<'de, T, As> BitUnpackAs<'de, T> for DefaultArgs<As>
where As: BitUnpackAsWithArgs<'de, T>, As::Args: Default,

Source§

impl<'de, T, As> BitUnpackAs<'de, T> for DefaultOnNone<As>
where T: Default, As: BitUnpackAs<'de, T>,

Source§

impl<'de, T, As> BitUnpackAs<'de, T> for FromInto<As>
where As: Into<T> + BitUnpack<'de>,

Source§

impl<'de, T, As> BitUnpackAs<'de, T> for FromIntoRef<As>
where As: Into<T> + BitUnpack<'de>,

Source§

impl<'de, T, As> BitUnpackAs<'de, T> for TryFromInto<As>
where As: TryInto<T> + BitUnpack<'de>, <As as TryInto<T>>::Error: Display,

Source§

impl<'de, T, As> BitUnpackAs<'de, T> for TryFromIntoRef<As>
where As: TryInto<T> + BitUnpack<'de>, <As as TryInto<T>>::Error: Display,

Source§

impl<'de, const BITS: usize> BitUnpackAs<'de, i8> for NBits<BITS>

Source§

impl<'de, const BITS: usize> BitUnpackAs<'de, i16> for NBits<BITS>

Source§

impl<'de, const BITS: usize> BitUnpackAs<'de, i32> for NBits<BITS>

Source§

impl<'de, const BITS: usize> BitUnpackAs<'de, i64> for NBits<BITS>

Source§

impl<'de, const BITS: usize> BitUnpackAs<'de, i128> for NBits<BITS>

Source§

impl<'de, const BITS: usize> BitUnpackAs<'de, isize> for NBits<BITS>

Source§

impl<'de, const BITS: usize> BitUnpackAs<'de, u8> for NBits<BITS>

Source§

impl<'de, const BITS: usize> BitUnpackAs<'de, u16> for NBits<BITS>

Source§

impl<'de, const BITS: usize> BitUnpackAs<'de, u32> for NBits<BITS>

Source§

impl<'de, const BITS: usize> BitUnpackAs<'de, u64> for NBits<BITS>

Source§

impl<'de, const BITS: usize> BitUnpackAs<'de, u128> for NBits<BITS>

Source§

impl<'de, const BITS: usize> BitUnpackAs<'de, usize> for NBits<BITS>

Source§

impl<'de, const BITS: usize> BitUnpackAs<'de, BigInt> for NBits<BITS>

Source§

impl<'de, const BITS: usize> BitUnpackAs<'de, BigUint> for NBits<BITS>

Source§

impl<'de, const BITS_FOR_BYTES_LEN: usize> BitUnpackAs<'de, Vec<u8>> for VarBytes<BITS_FOR_BYTES_LEN>

Source§

impl<'de, const BITS_FOR_BYTES_LEN: usize> BitUnpackAs<'de, BigInt> for VarInt<BITS_FOR_BYTES_LEN>

Source§

impl<'de, const BITS_FOR_BYTES_LEN: usize> BitUnpackAs<'de, BigUint> for VarInt<BITS_FOR_BYTES_LEN>

Source§

impl<'de, const BITS_FOR_LEN: usize> BitUnpackAs<'de, BitVec<u8, Msb0>> for VarBits<BITS_FOR_LEN>

Source§

impl<'de: 'a, 'a> BitUnpackAs<'de, Cow<'a, str>> for Remainder

Source§

impl<'de: 'a, 'a> BitUnpackAs<'de, Cow<'a, BitSlice<u8, Msb0>>> for Remainder

Source§

impl<'de: 'a, 'a> BitUnpackAs<'de, Cow<'a, [u8]>> for Remainder

Source§

impl<'de: 'a, 'a, const BITS_FOR_BYTES_LEN: usize> BitUnpackAs<'de, Cow<'a, [u8]>> for VarBytes<BITS_FOR_BYTES_LEN>

Source§

impl<'de: 'a, 'a, const BITS_FOR_LEN: usize> BitUnpackAs<'de, Cow<'a, BitSlice<u8, Msb0>>> for VarBits<BITS_FOR_LEN>