Decode

Trait Decode 

Source
pub trait Decode<Context>: Sized {
    // Required method
    fn decode<D: Decoder<Context = Context>>(
        decoder: &mut D,
    ) -> Result<Self, DecodeError>;
}
Expand description

Trait that makes a type able to be decoded, akin to serde’s DeserializeOwned trait.

Some types may require specific contexts. For example, to decode arena-based collections, an arena allocator must be provided as a context. In these cases, the context type Context should be specified or bounded.

This trait should be implemented for types which do not have references to data in the reader. For types that contain e.g. &str and &[u8], implement BorrowDecode instead.

Whenever you derive Decode for your type, the base trait BorrowDecode is automatically implemented.

This trait will be automatically implemented with unbounded Context if you enable the derive feature and add #[derive(bincode::Decode)] to your type. Note that if the type contains any lifetimes, BorrowDecode will be implemented instead.

§Implementing this trait manually

If you want to implement this trait for your type, the easiest way is to add a #[derive(bincode::Decode)], build and check your target/generated/bincode/ folder. This should generate a <Struct name>_Decode.rs file.

For this struct:

struct Entity {
    pub x: f32,
    pub y: f32,
}

It will look something like:

impl<Context> bincode::Decode<Context> for Entity {
    fn decode<D: bincode::de::Decoder<Context = Context>>(
        decoder: &mut D,
    ) -> core::result::Result<Self, bincode::error::DecodeError> {
        Ok(Self {
            x: bincode::Decode::decode(decoder)?,
            y: bincode::Decode::decode(decoder)?,
        })
    }
}
impl<'de, Context> bincode::BorrowDecode<'de, Context> for Entity {
    fn borrow_decode<D: bincode::de::BorrowDecoder<'de, Context = Context>>(
        decoder: &mut D,
    ) -> core::result::Result<Self, bincode::error::DecodeError> {
        Ok(Self {
            x: bincode::BorrowDecode::borrow_decode(decoder)?,
            y: bincode::BorrowDecode::borrow_decode(decoder)?,
        })
    }
}

From here you can add/remove fields, or add custom logic.

To get specific integer types, you can use:

let x: u8 = bincode::Decode::<Context>::decode(decoder)?;
let x = <u8 as bincode::Decode::<Context>>::decode(decoder)?;

You can use Context to require contexts for decoding a type:

use bincode::de::Decoder;
use bincode::error::DecodeError;
struct BytesInArena<'a>(bumpalo::collections::Vec<'a, u8>);
impl<'a> bincode::Decode<&'a bumpalo::Bump> for BytesInArena<'a> {
fn decode<D: Decoder>(decoder: &mut D) -> Result<Self, DecodeError> {
        todo!()
    }

Required Methods§

Source

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Attempt to decode this type with the given Decode.

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<Context> Decode<Context> for IpAddr

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for SocketAddr

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for bool

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for char

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for f32

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for f64

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for i8

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for i16

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for i32

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for i64

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for i128

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for isize

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for u8

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for u16

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for u32

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for u64

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for u128

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for ()

Source§

fn decode<D: Decoder<Context = Context>>(_: &mut D) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for usize

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for Box<str>

Source§

fn decode<D: Decoder>(decoder: &mut D) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for CString

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for Rc<str>

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for String

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for Arc<str>

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for Ipv4Addr

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for Ipv6Addr

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for SocketAddrV4

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for SocketAddrV6

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for AtomicBool

Source§

fn decode<D: Decoder>(decoder: &mut D) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for AtomicI8

Source§

fn decode<D: Decoder>(decoder: &mut D) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for AtomicI16

Source§

fn decode<D: Decoder>(decoder: &mut D) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for AtomicI32

Source§

fn decode<D: Decoder>(decoder: &mut D) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for AtomicI64

Source§

fn decode<D: Decoder>(decoder: &mut D) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for AtomicIsize

Source§

fn decode<D: Decoder>(decoder: &mut D) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for AtomicU8

Source§

fn decode<D: Decoder>(decoder: &mut D) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for AtomicU16

Source§

fn decode<D: Decoder>(decoder: &mut D) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for AtomicU32

Source§

fn decode<D: Decoder>(decoder: &mut D) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for AtomicU64

Source§

fn decode<D: Decoder>(decoder: &mut D) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for AtomicUsize

Source§

fn decode<D: Decoder>(decoder: &mut D) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for Duration

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for PathBuf

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for SystemTime

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for NonZeroI8

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for NonZeroI16

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for NonZeroI32

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for NonZeroI64

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for NonZeroI128

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for NonZeroIsize

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for NonZeroU8

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for NonZeroU16

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for NonZeroU32

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for NonZeroU64

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for NonZeroU128

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context> Decode<Context> for NonZeroUsize

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context, A> Decode<Context> for (A,)
where A: Decode<Context>,

Source§

fn decode<DE: Decoder<Context = Context>>( decoder: &mut DE, ) -> Result<Self, DecodeError>

Source§

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

Source§

fn decode<DE: Decoder<Context = Context>>( decoder: &mut DE, ) -> Result<Self, DecodeError>

Source§

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

Source§

fn decode<DE: Decoder<Context = Context>>( decoder: &mut DE, ) -> Result<Self, DecodeError>

Source§

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

Source§

fn decode<DE: Decoder<Context = Context>>( decoder: &mut DE, ) -> Result<Self, DecodeError>

Source§

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

Source§

fn decode<DE: Decoder<Context = Context>>( decoder: &mut DE, ) -> Result<Self, DecodeError>

Source§

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

Source§

fn decode<DE: Decoder<Context = Context>>( decoder: &mut DE, ) -> Result<Self, DecodeError>

Source§

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

Source§

fn decode<DE: Decoder<Context = Context>>( decoder: &mut DE, ) -> Result<Self, DecodeError>

Source§

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

Source§

fn decode<DE: Decoder<Context = Context>>( decoder: &mut DE, ) -> Result<Self, DecodeError>

Source§

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

Source§

fn decode<DE: Decoder<Context = Context>>( decoder: &mut DE, ) -> Result<Self, DecodeError>

Source§

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

Source§

fn decode<DE: Decoder<Context = Context>>( decoder: &mut DE, ) -> Result<Self, DecodeError>

Source§

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

Source§

fn decode<DE: Decoder<Context = Context>>( decoder: &mut DE, ) -> Result<Self, DecodeError>

Source§

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

Source§

fn decode<DE: Decoder<Context = Context>>( decoder: &mut DE, ) -> Result<Self, DecodeError>

Source§

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

Source§

fn decode<DE: Decoder<Context = Context>>( decoder: &mut DE, ) -> Result<Self, DecodeError>

Source§

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

Source§

fn decode<DE: Decoder<Context = Context>>( decoder: &mut DE, ) -> Result<Self, DecodeError>

Source§

impl<Context, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O> Decode<Context> for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O)
where A: Decode<Context>, B: Decode<Context>, C: Decode<Context>, D: Decode<Context>, E: Decode<Context>, F: Decode<Context>, G: Decode<Context>, H: Decode<Context>, I: Decode<Context>, J: Decode<Context>, K: Decode<Context>, L: Decode<Context>, M: Decode<Context>, N: Decode<Context>, O: Decode<Context>,

Source§

fn decode<DE: Decoder<Context = Context>>( decoder: &mut DE, ) -> Result<Self, DecodeError>

Source§

impl<Context, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P> Decode<Context> for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P)
where A: Decode<Context>, B: Decode<Context>, C: Decode<Context>, D: Decode<Context>, E: Decode<Context>, F: Decode<Context>, G: Decode<Context>, H: Decode<Context>, I: Decode<Context>, J: Decode<Context>, K: Decode<Context>, L: Decode<Context>, M: Decode<Context>, N: Decode<Context>, O: Decode<Context>, P: Decode<Context>,

Source§

fn decode<DE: Decoder<Context = Context>>( decoder: &mut DE, ) -> Result<Self, DecodeError>

Source§

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

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context, K, V, S> Decode<Context> for HashMap<K, V, S>
where K: Decode<Context> + Eq + Hash, V: Decode<Context>, S: BuildHasher + Default,

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context, T> Decode<Context> for Cow<'_, T>
where T: ToOwned + ?Sized, <T as ToOwned>::Owned: Decode<Context>,

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context, T> Decode<Context> for Option<T>
where T: Decode<Context>,

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context, T> Decode<Context> for Box<[T]>
where T: Decode<Context> + 'static,

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context, T> Decode<Context> for Box<T>
where T: Decode<Context>,

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context, T> Decode<Context> for BinaryHeap<T>
where T: Decode<Context> + Ord,

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context, T> Decode<Context> for BTreeSet<T>
where T: Decode<Context> + Ord,

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context, T> Decode<Context> for VecDeque<T>
where T: Decode<Context>,

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context, T> Decode<Context> for Rc<[T]>
where T: Decode<Context> + 'static,

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context, T> Decode<Context> for Rc<T>
where T: Decode<Context>,

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context, T> Decode<Context> for Arc<[T]>
where T: Decode<Context> + 'static,

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context, T> Decode<Context> for Arc<T>
where T: Decode<Context>,

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context, T> Decode<Context> for Vec<T>
where T: Decode<Context>,

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context, T> Decode<Context> for Cell<T>
where T: Decode<Context>,

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context, T> Decode<Context> for RefCell<T>
where T: Decode<Context>,

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context, T> Decode<Context> for PhantomData<T>

Source§

fn decode<D: Decoder<Context = Context>>(_: &mut D) -> Result<Self, DecodeError>

Source§

impl<Context, T> Decode<Context> for Range<T>
where T: Decode<Context>,

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context, T> Decode<Context> for RangeInclusive<T>
where T: Decode<Context>,

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context, T> Decode<Context> for Mutex<T>
where T: Decode<Context>,

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context, T> Decode<Context> for RwLock<T>
where T: Decode<Context>,

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context, T, S> Decode<Context> for HashSet<T, S>
where T: Decode<Context> + Eq + Hash, S: BuildHasher + Default,

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context, T, U> Decode<Context> for Result<T, U>
where T: Decode<Context>, U: Decode<Context>,

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

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

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context, T: Decode<Context>> Decode<Context> for Reverse<T>

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<Context, T: Decode<Context>> Decode<Context> for Wrapping<T>

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Source§

impl<T, Context> Decode<Context> for Bound<T>
where T: Decode<Context>,

Source§

fn decode<D: Decoder<Context = Context>>( decoder: &mut D, ) -> Result<Self, DecodeError>

Implementors§

Source§

impl<Context, T> Decode<Context> for Compat<T>