[go: up one dir, main page]

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

Available on crate feature std only.
Source§

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

Source§

impl<Context> Decode<Context> for SocketAddr

Available on crate feature std only.
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>

Available on crate feature alloc only.
Source§

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

Source§

impl<Context> Decode<Context> for CString

Available on crate feature std only.
Source§

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

Source§

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

Available on crate feature alloc only.
Source§

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

Source§

impl<Context> Decode<Context> for String

Available on crate feature alloc only.
Source§

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

Source§

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

Available on crate feature alloc and target_has_atomic=ptr only.
Source§

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

Source§

impl<Context> Decode<Context> for Ipv4Addr

Available on crate feature std only.
Source§

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

Source§

impl<Context> Decode<Context> for Ipv6Addr

Available on crate feature std only.
Source§

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

Source§

impl<Context> Decode<Context> for SocketAddrV4

Available on crate feature std only.
Source§

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

Source§

impl<Context> Decode<Context> for SocketAddrV6

Available on crate feature std only.
Source§

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

Source§

impl<Context> Decode<Context> for AtomicBool

Available on target_has_atomic=8 only.
Source§

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

Source§

impl<Context> Decode<Context> for AtomicI8

Available on target_has_atomic=8 only.
Source§

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

Source§

impl<Context> Decode<Context> for AtomicI16

Available on target_has_atomic=16 only.
Source§

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

Source§

impl<Context> Decode<Context> for AtomicI32

Available on target_has_atomic=32 only.
Source§

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

Source§

impl<Context> Decode<Context> for AtomicI64

Available on target_has_atomic=64 only.
Source§

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

Source§

impl<Context> Decode<Context> for AtomicIsize

Available on target_has_atomic=ptr only.
Source§

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

Source§

impl<Context> Decode<Context> for AtomicU8

Available on target_has_atomic=8 only.
Source§

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

Source§

impl<Context> Decode<Context> for AtomicU16

Available on target_has_atomic=16 only.
Source§

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

Source§

impl<Context> Decode<Context> for AtomicU32

Available on target_has_atomic=32 only.
Source§

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

Source§

impl<Context> Decode<Context> for AtomicU64

Available on target_has_atomic=64 only.
Source§

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

Source§

impl<Context> Decode<Context> for AtomicUsize

Available on target_has_atomic=ptr only.
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

Available on crate feature std only.
Source§

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

Source§

impl<Context> Decode<Context> for SystemTime

Available on crate feature std only.
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>,

Available on crate feature alloc only.
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,

Available on crate feature std only.
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>,

Available on crate feature alloc only.
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,

Available on crate feature alloc only.
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>,

Available on crate feature alloc only.
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,

Available on crate feature alloc only.
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,

Available on crate feature alloc only.
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>,

Available on crate feature alloc only.
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,

Available on crate feature alloc only.
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>,

Available on crate feature alloc only.
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,

Available on crate feature alloc and target_has_atomic=ptr only.
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>,

Available on crate feature alloc and target_has_atomic=ptr only.
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>,

Available on crate feature alloc only.
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>,

Available on crate feature std only.
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>,

Available on crate feature std only.
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,

Available on crate feature std only.
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>

Available on crate feature serde only.