Decode

Trait Decode 

Source
pub trait Decode {
    // Required method
    fn decode_ext(
        reader: &mut impl Read,
        dedupe_decoder: Option<&mut DedupeDecoder>,
    ) -> Result<Self>
       where Self: Sized;

    // Provided methods
    fn decode_len(reader: &mut impl Read) -> Result<usize> { ... }
    fn decode_discriminant(reader: &mut impl Read) -> Result<usize> { ... }
    fn decode(reader: &mut impl Read) -> Result<Self>
       where Self: Sized { ... }
}
Expand description

Trait for types that can be decoded from a binary stream.

Required Methods§

Source

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>
where Self: Sized,

Decodes Self from reader, optionally using DedupeDecoder.

Provided Methods§

Source

fn decode_len(reader: &mut impl Read) -> Result<usize>

Decodes a collection length previously encoded with Encode::encode_len.

Source

fn decode_discriminant(reader: &mut impl Read) -> Result<usize>

Decodes an enum discriminant previously encoded with Encode::encode_discriminant.

The default reads an unsigned varint.

Source

fn decode(reader: &mut impl Read) -> Result<Self>
where Self: Sized,

Convenience wrapper around Decode::decode_ext without deduplication.

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 Decode for bool

Source§

fn decode_ext( reader: &mut impl Read, _dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl Decode for f32

Source§

fn decode_ext( reader: &mut impl Read, _dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl Decode for f64

Source§

fn decode_ext( reader: &mut impl Read, _dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl Decode for i8

Source§

fn decode_ext( reader: &mut impl Read, _dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

impl Decode for i16

Source§

fn decode_ext( reader: &mut impl Read, _dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl Decode for i32

Source§

fn decode_ext( reader: &mut impl Read, _dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl Decode for i64

Source§

fn decode_ext( reader: &mut impl Read, _dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl Decode for i128

Source§

fn decode_ext( reader: &mut impl Read, _dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl Decode for isize

Source§

fn decode_ext( reader: &mut impl Read, _dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl Decode for u8

Source§

fn decode_ext( reader: &mut impl Read, _dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

impl Decode for u16

Source§

fn decode_ext( reader: &mut impl Read, _dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl Decode for u32

Source§

fn decode_ext( reader: &mut impl Read, _dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl Decode for u64

Source§

fn decode_ext( reader: &mut impl Read, _dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl Decode for u128

Source§

fn decode_ext( reader: &mut impl Read, _dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl Decode for ()

Source§

fn decode_ext( _reader: &mut impl Read, _dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl Decode for usize

Source§

fn decode_ext( reader: &mut impl Read, _dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl Decode for String

Source§

fn decode_ext( reader: &mut impl Read, _dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

impl Decode for RangeFull

Source§

fn decode_ext( _reader: &mut impl Read, _dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl Decode for NonZeroI8

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl Decode for NonZeroI16

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl Decode for NonZeroI32

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl Decode for NonZeroI64

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl Decode for NonZeroI128

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl Decode for NonZeroIsize

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl Decode for NonZeroU8

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl Decode for NonZeroU16

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl Decode for NonZeroU32

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl Decode for NonZeroU64

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl Decode for NonZeroU128

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl Decode for NonZeroUsize

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl<A: Decode, B: Decode> Decode for (A, B)

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl<A: Decode, B: Decode, C: Decode> Decode for (A, B, C)

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl<A: Decode, B: Decode, C: Decode, D: Decode> Decode for (A, B, C, D)

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl<A: Decode, B: Decode, C: Decode, D: Decode, E: Decode> Decode for (A, B, C, D, E)

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl<A: Decode, B: Decode, C: Decode, D: Decode, E: Decode, F: Decode> Decode for (A, B, C, D, E, F)

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl<A: Decode, B: Decode, C: Decode, D: Decode, E: Decode, F: Decode, G: Decode> Decode for (A, B, C, D, E, F, G)

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl<A: Decode, B: Decode, C: Decode, D: Decode, E: Decode, F: Decode, G: Decode, H: Decode> Decode for (A, B, C, D, E, F, G, H)

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl<A: Decode, B: Decode, C: Decode, D: Decode, E: Decode, F: Decode, G: Decode, H: Decode, I: Decode> Decode for (A, B, C, D, E, F, G, H, I)

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl<A: Decode, B: Decode, C: Decode, D: Decode, E: Decode, F: Decode, G: Decode, H: Decode, I: Decode, J: Decode> Decode for (A, B, C, D, E, F, G, H, I, J)

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl<A: Decode, B: Decode, C: Decode, D: Decode, E: Decode, F: Decode, G: Decode, H: Decode, I: Decode, J: Decode, K: Decode> Decode for (A, B, C, D, E, F, G, H, I, J, K)

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl<K: Decode + Ord, V: Decode> Decode for BTreeMap<K, V>

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

impl<T: Decode + 'static> Decode for Vec<T>

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

impl<T: Decode + Ord> Decode for BinaryHeap<T>

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

impl<T: Decode> Decode for Option<T>

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl<T: Decode> Decode for (T,)

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl<T: Decode> Decode for PhantomData<T>

Source§

fn decode_ext( _reader: &mut impl Read, _dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl<T: Decode> Decode for Range<T>

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl<T: Decode> Decode for RangeFrom<T>

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl<T: Decode> Decode for RangeInclusive<T>

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl<T: Decode> Decode for RangeTo<T>

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl<T: Decode> Decode for RangeToInclusive<T>

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl<T: Decode, E: Decode> Decode for Result<T, E>

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Source§

impl<V: Decode + 'static> Decode for VecDeque<V>

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

impl<V: Decode + Ord> Decode for BTreeSet<V>

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

impl<V: Decode> Decode for LinkedList<V>

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

impl<const N: usize, T: Decode> Decode for [T; N]

Source§

fn decode_ext( reader: &mut impl Read, dedupe_decoder: Option<&mut DedupeDecoder>, ) -> Result<Self>

Source§

fn decode_len(_reader: &mut impl Read) -> Result<usize>

Implementors§