Trait Deserialize
trait Deserialize<'de>: Sized
A data structure that can be deserialized from any data format supported by Serde.
Serde provides Deserialize implementations for many Rust primitive and
standard library types. The complete list is [here][crate::de]. All of these
can be deserialized using Serde out of the box.
Additionally, Serde provides a procedural macro called serde_derive to
automatically generate Deserialize implementations for structs and enums
in your program. See the derive section of the manual for how to
use this.
In rare cases it may be necessary to implement Deserialize manually for
some type in your program. See the Implementing
Deserialize section of the manual for more about this.
Third-party crates may provide Deserialize implementations for types that
they expose. For example the linked-hash-map crate provides a
LinkedHashMap<K, V> type that is deserializable by Serde because the crate
provides an implementation of Deserialize for it.
Lifetime
The 'de lifetime of this trait is the lifetime of data that may be
borrowed by Self when deserialized. See the page Understanding
deserializer lifetimes for a more detailed explanation of these lifetimes.
Required Methods
fn deserialize<D>(deserializer: D) -> Result<Self, <D as >::Error> where D: Deserializer<'de>Deserialize this value from the given Serde deserializer.
See the Implementing
Deserializesection of the manual for more information about how to implement this method.
Implementors
impl<'de> Deserialize for Saturating<u8>impl<'de, T> Deserialize for [T; 10]impl<'de: 'a, 'a> Deserialize for &'a Pathimpl<'de> Deserialize for Saturating<u128>impl<'de, T> Deserialize for (T)impl<'de, T> Deserialize for Bound<T>impl<'de, T> Deserialize for [T; 6]impl<'de> Deserialize for Saturating<i8>impl<'de, T> Deserialize for [T; 29]impl<'de, Idx> Deserialize for Range<Idx>impl<'de> Deserialize for NonZeroU32impl<'de, T> Deserialize for [T; 2]impl<'de> Deserialize for f32impl<'de, T> Deserialize for [T; 25]impl<'de, T: Deserialize<'de>> Deserialize for Mutex<T>impl<'de> Deserialize for NonZeroI32impl<'de, T> Deserialize for VecDeque<T>impl<'de, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Deserialize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)impl<'de, T> Deserialize for [T; 21]impl<'de, T> Deserialize for Rc<T>impl<'de> Deserialize for u8impl<'de, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Deserialize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)impl<'de> Deserialize for AtomicUsizeimpl<'de> Deserialize for u128impl<'de> Deserialize for Saturating<u32>impl<'de, T> Deserialize for [T; 17]impl<'de> Deserialize for Box<OsStr>impl<'de> Deserialize for i8impl<'de, T: Deserialize<'de>> Deserialize for Reverse<T>impl<'de, T0, T1, T2, T3, T4, T5, T6, T7> Deserialize for (T0, T1, T2, T3, T4, T5, T6, T7)impl<'de> Deserialize for AtomicIsizeimpl<'de, T> Deserialize for [T; 13]impl<'de> Deserialize for IgnoredAnyimpl<'de> Deserialize for OsStringimpl<'de> Deserialize for Saturating<i32>impl<'de: 'a, 'a> Deserialize for &'a strimpl<'de, T0, T1, T2, T3> Deserialize for (T0, T1, T2, T3)impl<'de> Deserialize for AtomicBoolimpl<'de> Deserialize for NonZeroUsizeimpl<'de, T> Deserialize for [T; 9]impl<'de, T> Deserialize for [T; 32]impl<'de, Idx> Deserialize for RangeTo<Idx>impl<'de> Deserialize for NonZeroIsizeimpl<'de, T> Deserialize for [T; 5]impl<'de> Deserialize for NonZeroI128impl<'de, T> Deserialize for [T; 28]impl<'de> Deserialize for SystemTimeimpl<'de> Deserialize for u32impl<'de, T> Deserialize for [T; 1]impl<'de> Deserialize for IpAddrimpl<'de> Deserialize for Saturating<usize>impl<'de, T> Deserialize for [T; 24]impl<'de, T: Deserialize<'de>> Deserialize for RefCell<T>impl<'de> Deserialize for i32impl<'de, T, S> Deserialize for HashSet<T, S>impl<'de, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> Deserialize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)impl<'de, T> Deserialize for [T; 20]impl<'de, T> Deserialize for ArcWeak<T>impl<'de> Deserialize for Saturating<isize>impl<'de, T> Deserialize for BinaryHeap<T>impl<'de, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Deserialize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)impl<'de> Deserialize for AtomicU32impl<'de> Deserialize for Saturating<i128>impl<'de, T> Deserialize for [T; 16]impl<'de> Deserialize for Box<str>impl<'de> Deserialize for Ipv4Addrimpl<'de> Deserialize for boolimpl<'de> Deserialize for Box<CStr>impl<'de, T0, T1, T2, T3, T4, T5, T6> Deserialize for (T0, T1, T2, T3, T4, T5, T6)impl<'de> Deserialize for AtomicI32impl<'de> Deserialize for NonZeroU16impl<'de, T> Deserialize for [T; 12]impl<'de> Deserialize for Box<Path>impl<'de> Deserialize for Stringimpl<'de, T0, T1, T2> Deserialize for (T0, T1, T2)impl<'de, T> Deserialize for Wrapping<T>impl<'de> Deserialize for usizeimpl<'de, T> Deserialize for [T; 8]impl<'de> Deserialize for NonZeroI16impl<'de, T> Deserialize for BTreeSet<T>impl<'de, T> Deserialize for [T; 31]impl<'de, Idx> Deserialize for RangeFrom<Idx>impl<'de> Deserialize for isizeimpl<'de, T> Deserialize for [T; 4]impl<'de> Deserialize for Ipv6Addrimpl<'de> Deserialize for i128impl<'de, T> Deserialize for [T; 27]impl<'de> Deserialize for Durationimpl<'de> Deserialize for Saturating<u16>impl<'de, T> Deserialize for [T; 0]impl<'de, K, V, S> Deserialize for HashMap<K, V, S>impl<'de, T> Deserialize for [T; 23]impl<'de, T> Deserialize for Cell<T>impl<'de> Deserialize for Saturating<i16>impl<'de, T> Deserialize for LinkedList<T>impl<'de, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Deserialize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)impl<'de> Deserialize for AtomicU64impl<'de> Deserialize for NonZeroU64impl<'de, T> Deserialize for [T; 19]impl<'de, T> Deserialize for RcWeak<T>impl<'de> Deserialize for SocketAddrimpl<'de, T> Deserialize for PhantomData<T>impl<'de, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Deserialize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)impl<'de> Deserialize for AtomicU16impl<'de, T> Deserialize for [T; 15]impl<'de, T: Deserialize<'de>> Deserialize for Box<[T]>impl<'de> Deserialize for NonZeroI64impl<'de> Deserialize for ()impl<'de> Deserialize for CStringimpl<'de, T0, T1, T2, T3, T4, T5> Deserialize for (T0, T1, T2, T3, T4, T5)impl<'de> Deserialize for AtomicI16impl<'de> Deserialize for u16impl<'de, T> Deserialize for [T; 11]impl<'de> Deserialize for PathBufimpl<'de> Deserialize for charimpl<'de, T0, T1> Deserialize for (T0, T1)impl<'de, T, E> Deserialize for Result<T, E>impl<'de> Deserialize for Saturating<u64>impl<'de, T> Deserialize for [T; 7]impl<'de> Deserialize for SocketAddrV4impl<'de> Deserialize for i16impl<'de, T> Deserialize for [T; 30]impl<'de, Idx> Deserialize for RangeInclusive<Idx>impl<'de> Deserialize for Saturating<i64>impl<'de, T> Deserialize for [T; 3]impl<'de> Deserialize for f64impl<'de, T> Deserialize for [T; 26]impl<'de, T: Deserialize<'de>> Deserialize for RwLock<T>impl<'de, T> Deserialize for Vec<T>impl<'de, K, V> Deserialize for BTreeMap<K, V>impl<'de, T> Deserialize for [T; 22]impl<'de, T> Deserialize for Arc<T>impl<'de> Deserialize for NonZeroU8impl<'de> Deserialize for SocketAddrV6impl<'de, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Deserialize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)impl<'de> Deserialize for AtomicI64impl<'de> Deserialize for NonZeroU128impl<'de> Deserialize for u64impl<'de, T> Deserialize for [T; 18]impl<'de, 'a, T> Deserialize for Cow<'a, T>impl<'de> Deserialize for NonZeroI8impl<'de, T> Deserialize for Option<T>impl<'de, T0, T1, T2, T3, T4, T5, T6, T7, T8> Deserialize for (T0, T1, T2, T3, T4, T5, T6, T7, T8)impl<'de> Deserialize for AtomicU8impl<'de, T> Deserialize for [T; 14]impl<'de, T: Deserialize<'de>> Deserialize for Box<T>impl<'de> Deserialize for i64impl<'de: 'a, 'a> Deserialize for &'a [u8]impl<'de, T0, T1, T2, T3, T4> Deserialize for (T0, T1, T2, T3, T4)impl<'de> Deserialize for AtomicI8