Skip to main content

Decode

Trait Decode 

Source
pub trait Decode: Sized {
    // Required method
    fn decode<D>(
        decoder: &mut D,
        plugin: &Plugin,
        session: &mut Session,
    ) -> Result<Self, Error>
       where D: Decoder + ?Sized;
}
Expand description

A trait for types that can be deserialized.

Types implementing Decode can deserialize themselves using a Decoder. The Plugin parameter allows passing additional context for custom deserialization strategies.

§Example

struct Point {
    x: i32,
    y: i32,
}

impl Decode for Point {
    fn decode<D: Decoder + ?Sized>(
        decoder: &mut D,
        plugin: &Plugin,
    ) -> io::Result<Self> {
        let x = i32::decode(decoder, plugin)?;
        let y = i32::decode(decoder, plugin)?;
        Ok(Point { x, y })
    }
}

Required Methods§

Source

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<Self, Error>
where D: Decoder + ?Sized,

Decodes a value using the provided decoder.

§Arguments
  • decoder - The decoder to read from
  • plugin - Plugin context for custom deserialization strategies
  • session - Session state for managing deserialization context
§Errors

Returns an error if the underlying I/O operation fails or if the data is invalid.

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<D>( decoder: &mut D, _plugin: &Plugin, _session: &mut Session, ) -> Result<bool, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for char

Source§

fn decode<D>( decoder: &mut D, _plugin: &Plugin, _session: &mut Session, ) -> Result<char, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for f32

Source§

fn decode<D>( decoder: &mut D, _plugin: &Plugin, _session: &mut Session, ) -> Result<f32, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for f64

Source§

fn decode<D>( decoder: &mut D, _plugin: &Plugin, _session: &mut Session, ) -> Result<f64, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for i8

Source§

fn decode<D>( decoder: &mut D, _plugin: &Plugin, _session: &mut Session, ) -> Result<i8, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for i16

Source§

fn decode<D>( decoder: &mut D, _plugin: &Plugin, _session: &mut Session, ) -> Result<i16, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for i32

Source§

fn decode<D>( decoder: &mut D, _plugin: &Plugin, _session: &mut Session, ) -> Result<i32, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for i64

Source§

fn decode<D>( decoder: &mut D, _plugin: &Plugin, _session: &mut Session, ) -> Result<i64, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for i128

Source§

fn decode<D>( decoder: &mut D, _plugin: &Plugin, _session: &mut Session, ) -> Result<i128, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for isize

Source§

fn decode<D>( decoder: &mut D, _plugin: &Plugin, _session: &mut Session, ) -> Result<isize, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for u8

Source§

fn decode<D>( decoder: &mut D, _plugin: &Plugin, _session: &mut Session, ) -> Result<u8, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for u16

Source§

fn decode<D>( decoder: &mut D, _plugin: &Plugin, _session: &mut Session, ) -> Result<u16, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for u32

Source§

fn decode<D>( decoder: &mut D, _plugin: &Plugin, _session: &mut Session, ) -> Result<u32, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for u64

Source§

fn decode<D>( decoder: &mut D, _plugin: &Plugin, _session: &mut Session, ) -> Result<u64, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for u128

Source§

fn decode<D>( decoder: &mut D, _plugin: &Plugin, _session: &mut Session, ) -> Result<u128, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for ()

Source§

fn decode<D>( _decoder: &mut D, _plugin: &Plugin, _session: &mut Session, ) -> Result<(), Error>
where D: Decoder + ?Sized,

Source§

impl Decode for usize

Source§

fn decode<D>( decoder: &mut D, _plugin: &Plugin, _session: &mut Session, ) -> Result<usize, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for Box<str>

Source§

fn decode<D>( decoder: &mut D, _plugin: &Plugin, _session: &mut Session, ) -> Result<Box<str>, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for Box<Path>

Source§

fn decode<D>( decoder: &mut D, _plugin: &Plugin, _session: &mut Session, ) -> Result<Box<Path>, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for Rc<str>

Source§

fn decode<D>( decoder: &mut D, _plugin: &Plugin, _session: &mut Session, ) -> Result<Rc<str>, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for Rc<Path>

Source§

fn decode<D>( decoder: &mut D, _plugin: &Plugin, _session: &mut Session, ) -> Result<Rc<Path>, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for String

Source§

fn decode<D>( decoder: &mut D, _plugin: &Plugin, _session: &mut Session, ) -> Result<String, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for Arc<str>

Source§

fn decode<D>( decoder: &mut D, _plugin: &Plugin, _session: &mut Session, ) -> Result<Arc<str>, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for Arc<Path>

Source§

fn decode<D>( decoder: &mut D, _plugin: &Plugin, _session: &mut Session, ) -> Result<Arc<Path>, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for NonZero<i8>

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<NonZero<i8>, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for NonZero<i16>

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<NonZero<i16>, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for NonZero<i32>

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<NonZero<i32>, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for NonZero<i64>

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<NonZero<i64>, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for NonZero<i128>

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<NonZero<i128>, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for NonZero<isize>

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<NonZero<isize>, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for NonZero<u8>

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<NonZero<u8>, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for NonZero<u16>

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<NonZero<u16>, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for NonZero<u32>

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<NonZero<u32>, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for NonZero<u64>

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<NonZero<u64>, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for NonZero<u128>

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<NonZero<u128>, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for NonZero<usize>

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<NonZero<usize>, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for RangeFull

Source§

fn decode<D>( _decoder: &mut D, _plugin: &Plugin, _session: &mut Session, ) -> Result<RangeFull, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for AtomicBool

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<AtomicBool, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for AtomicI8

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<AtomicI8, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for AtomicI16

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<AtomicI16, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for AtomicI32

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<AtomicI32, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for AtomicI64

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<AtomicI64, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for AtomicIsize

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<AtomicIsize, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for AtomicU8

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<AtomicU8, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for AtomicU16

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<AtomicU16, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for AtomicU32

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<AtomicU32, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for AtomicU64

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<AtomicU64, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for AtomicUsize

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<AtomicUsize, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for Duration

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<Duration, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for PathBuf

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<PathBuf, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for Compact128

Source§

fn decode<__D>( decoder: &mut __D, plugin: &Plugin, session: &mut Session, ) -> Result<Compact128, Error>
where __D: Decoder + ?Sized,

Source§

impl Decode for StableTypeID

Source§

fn decode<__D>( decoder: &mut __D, plugin: &Plugin, session: &mut Session, ) -> Result<StableTypeID, Error>
where __D: Decoder + ?Sized,

Source§

impl Decode for Interned<str>

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<Interned<str>, Error>
where D: Decoder + ?Sized,

Source§

impl Decode for Interned<Path>

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<Interned<Path>, Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<(A,), Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<(A, B), Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<(A, B, C), Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<(A, B, C, D_), Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<(A, B, C, D_, E), Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<(A, B, C, D_, E, F), Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<(A, B, C, D_, E, F, G), Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<(A, B, C, D_, E, F, G, H), Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<(A, B, C, D_, E, F, G, H, I), Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<(A, B, C, D_, E, F, G, H, I, J), Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<(A, B, C, D_, E, F, G, H, I, J, K), Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<(A, B, C, D_, E, F, G, H, I, J, K, L), Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<BTreeMap<K, V>, Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<HashMap<K, V, S>, Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<DashMap<K, V, S>, Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<Cow<'_, T>, Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<Bound<T>, Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<Option<T>, Error>
where D: Decoder + ?Sized,

Source§

impl<T> Decode for Box<[T]>
where T: Decode,

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<Box<[T]>, Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<Box<T>, Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<BTreeSet<T>, Error>
where D: Decoder + ?Sized,

Source§

impl<T> Decode for LinkedList<T>
where T: Decode,

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<LinkedList<T>, Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<VecDeque<T>, Error>
where D: Decoder + ?Sized,

Source§

impl<T> Decode for Rc<[T]>
where T: Decode,

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<Rc<[T]>, Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<Rc<T>, Error>
where D: Decoder + ?Sized,

Source§

impl<T> Decode for Arc<[T]>
where T: Decode,

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<Arc<[T]>, Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<Arc<T>, Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<Vec<T>, Error>
where D: Decoder + ?Sized,

Source§

impl<T> Decode for Cell<T>
where T: Decode + Copy,

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<Cell<T>, Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<RefCell<T>, Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<Reverse<T>, Error>
where D: Decoder + ?Sized,

Source§

impl<T> Decode for PhantomData<T>

Source§

fn decode<D>( _decoder: &mut D, _plugin: &Plugin, _session: &mut Session, ) -> Result<PhantomData<T>, Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<Wrapping<T>, Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<Range<T>, Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<RangeFrom<T>, Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<RangeInclusive<T>, Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<RangeTo<T>, Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<RangeToInclusive<T>, Error>
where D: Decoder + ?Sized,

Source§

impl<T> Decode for Interned<[T]>
where T: Decode + StableHash + Identifiable + Send + Sync + 'static,

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<Interned<[T]>, Error>
where D: Decoder + ?Sized,

Source§

impl<T> Decode for Interned<T>
where T: Identifiable + StableHash + Decode + Send + Sync + 'static,

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<Interned<T>, Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<Result<T, E>, Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<HashSet<T, S>, Error>
where D: Decoder + ?Sized,

Source§

impl<T, S> Decode for DashSet<T, S>
where T: Decode + Eq + Hash, S: BuildHasher + Default + Clone,

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<DashSet<T, S>, Error>
where D: Decoder + ?Sized,

Source§

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

Source§

fn decode<D>( decoder: &mut D, plugin: &Plugin, session: &mut Session, ) -> Result<[T; N], Error>
where D: Decoder + ?Sized,

Implementors§