Trait Deserialize

Source
pub trait Deserialize: Sized {
    // Required method
    fn deserialize<D>(
        deserializer: D,
    ) -> Result<Self, <D as Deserializer>::Error>
       where D: Deserializer;
}
Expand description

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. 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 codegen 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.

Required Methods§

Source

fn deserialize<D>(deserializer: D) -> Result<Self, <D as Deserializer>::Error>
where D: Deserializer,

Deserialize this value from the given Serde deserializer.

See the Implementing Deserialize section of the manual for more information about how to implement this method.

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 Deserialize for IpAddr

Source§

fn deserialize<D>(deserializer: D) -> Result<IpAddr, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl Deserialize for SocketAddr

Source§

fn deserialize<D>( deserializer: D, ) -> Result<SocketAddr, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl Deserialize for bool

Source§

fn deserialize<D>(deserializer: D) -> Result<bool, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl Deserialize for char

Source§

fn deserialize<D>(deserializer: D) -> Result<char, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl Deserialize for f32

Source§

fn deserialize<D>(deserializer: D) -> Result<f32, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl Deserialize for f64

Source§

fn deserialize<D>(deserializer: D) -> Result<f64, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl Deserialize for i8

Source§

fn deserialize<D>(deserializer: D) -> Result<i8, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl Deserialize for i16

Source§

fn deserialize<D>(deserializer: D) -> Result<i16, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl Deserialize for i32

Source§

fn deserialize<D>(deserializer: D) -> Result<i32, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl Deserialize for i64

Source§

fn deserialize<D>(deserializer: D) -> Result<i64, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl Deserialize for isize

Source§

fn deserialize<D>(deserializer: D) -> Result<isize, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl Deserialize for u8

Source§

fn deserialize<D>(deserializer: D) -> Result<u8, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl Deserialize for u16

Source§

fn deserialize<D>(deserializer: D) -> Result<u16, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl Deserialize for u32

Source§

fn deserialize<D>(deserializer: D) -> Result<u32, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl Deserialize for u64

Source§

fn deserialize<D>(deserializer: D) -> Result<u64, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl Deserialize for ()

Source§

fn deserialize<D>(deserializer: D) -> Result<(), <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl Deserialize for usize

Source§

fn deserialize<D>(deserializer: D) -> Result<usize, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl Deserialize for Box<str>

Source§

fn deserialize<D>( deserializer: D, ) -> Result<Box<str>, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl Deserialize for CString

Source§

fn deserialize<D>( deserializer: D, ) -> Result<CString, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl Deserialize for String

Source§

fn deserialize<D>(deserializer: D) -> Result<String, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl Deserialize for Ipv4Addr

Source§

fn deserialize<D>( deserializer: D, ) -> Result<Ipv4Addr, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl Deserialize for Ipv6Addr

Source§

fn deserialize<D>( deserializer: D, ) -> Result<Ipv6Addr, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl Deserialize for SocketAddrV4

Source§

fn deserialize<D>( deserializer: D, ) -> Result<SocketAddrV4, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl Deserialize for SocketAddrV6

Source§

fn deserialize<D>( deserializer: D, ) -> Result<SocketAddrV6, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl Deserialize for Duration

Source§

fn deserialize<D>( deserializer: D, ) -> Result<Duration, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl Deserialize for OsString

Source§

fn deserialize<D>( deserializer: D, ) -> Result<OsString, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl Deserialize for PathBuf

Source§

fn deserialize<D>( deserializer: D, ) -> Result<PathBuf, <D as Deserializer>::Error>
where D: Deserializer,

Source§

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

Source§

fn deserialize<D>( deserializer: D, ) -> Result<Cow<'a, T>, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<Idx> Deserialize for Range<Idx>
where Idx: Deserialize,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<Range<Idx>, <D as Deserializer>::Error>
where D: Deserializer,

Source§

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

Source§

fn deserialize<D>( deserializer: D, ) -> Result<BTreeMap<K, V>, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<K, V, S> Deserialize for HashMap<K, V, S>

Source§

fn deserialize<D>( deserializer: D, ) -> Result<HashMap<K, V, S>, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T0> Deserialize for (T0,)
where T0: Deserialize,

Source§

fn deserialize<D>(deserializer: D) -> Result<(T0,), <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T0, T1> Deserialize for (T0, T1)
where T0: Deserialize, T1: Deserialize,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<(T0, T1), <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T0, T1, T2> Deserialize for (T0, T1, T2)
where T0: Deserialize, T1: Deserialize, T2: Deserialize,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<(T0, T1, T2), <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T0, T1, T2, T3> Deserialize for (T0, T1, T2, T3)

Source§

fn deserialize<D>( deserializer: D, ) -> Result<(T0, T1, T2, T3), <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T0, T1, T2, T3, T4> Deserialize for (T0, T1, T2, T3, T4)

Source§

fn deserialize<D>( deserializer: D, ) -> Result<(T0, T1, T2, T3, T4), <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T0, T1, T2, T3, T4, T5> Deserialize for (T0, T1, T2, T3, T4, T5)

Source§

fn deserialize<D>( deserializer: D, ) -> Result<(T0, T1, T2, T3, T4, T5), <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T0, T1, T2, T3, T4, T5, T6> Deserialize for (T0, T1, T2, T3, T4, T5, T6)

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7> Deserialize for (T0, T1, T2, T3, T4, T5, T6, T7)

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Deserialize for (T0, T1, T2, T3, T4, T5, T6, T7, T8)

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Deserialize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Deserialize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)

Source§

impl<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)

Source§

impl<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)

Source§

impl<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)

Source§

impl<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)

Source§

impl<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)

Source§

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

Source§

fn deserialize<D>( deserializer: D, ) -> Result<Option<T>, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 0]
where T: Deserialize,

Source§

fn deserialize<D>(deserializer: D) -> Result<[T; 0], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 1]
where T: Deserialize,

Source§

fn deserialize<D>(deserializer: D) -> Result<[T; 1], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 2]
where T: Deserialize,

Source§

fn deserialize<D>(deserializer: D) -> Result<[T; 2], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 3]
where T: Deserialize,

Source§

fn deserialize<D>(deserializer: D) -> Result<[T; 3], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 4]
where T: Deserialize,

Source§

fn deserialize<D>(deserializer: D) -> Result<[T; 4], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 5]
where T: Deserialize,

Source§

fn deserialize<D>(deserializer: D) -> Result<[T; 5], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 6]
where T: Deserialize,

Source§

fn deserialize<D>(deserializer: D) -> Result<[T; 6], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 7]
where T: Deserialize,

Source§

fn deserialize<D>(deserializer: D) -> Result<[T; 7], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 8]
where T: Deserialize,

Source§

fn deserialize<D>(deserializer: D) -> Result<[T; 8], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 9]
where T: Deserialize,

Source§

fn deserialize<D>(deserializer: D) -> Result<[T; 9], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 10]
where T: Deserialize,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<[T; 10], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 11]
where T: Deserialize,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<[T; 11], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 12]
where T: Deserialize,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<[T; 12], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 13]
where T: Deserialize,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<[T; 13], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 14]
where T: Deserialize,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<[T; 14], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 15]
where T: Deserialize,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<[T; 15], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 16]
where T: Deserialize,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<[T; 16], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 17]
where T: Deserialize,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<[T; 17], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 18]
where T: Deserialize,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<[T; 18], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 19]
where T: Deserialize,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<[T; 19], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 20]
where T: Deserialize,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<[T; 20], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 21]
where T: Deserialize,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<[T; 21], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 22]
where T: Deserialize,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<[T; 22], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 23]
where T: Deserialize,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<[T; 23], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 24]
where T: Deserialize,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<[T; 24], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 25]
where T: Deserialize,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<[T; 25], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 26]
where T: Deserialize,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<[T; 26], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 27]
where T: Deserialize,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<[T; 27], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 28]
where T: Deserialize,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<[T; 28], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 29]
where T: Deserialize,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<[T; 29], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 30]
where T: Deserialize,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<[T; 30], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 31]
where T: Deserialize,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<[T; 31], <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for [T; 32]
where T: Deserialize,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<[T; 32], <D as Deserializer>::Error>
where D: Deserializer,

Source§

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

Source§

fn deserialize<D>( deserializer: D, ) -> Result<Box<[T]>, <D as Deserializer>::Error>
where D: Deserializer,

Source§

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

Source§

fn deserialize<D>(deserializer: D) -> Result<Box<T>, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for BinaryHeap<T>
where T: Deserialize + Ord,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<BinaryHeap<T>, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for BTreeSet<T>
where T: Deserialize + Eq + Ord,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<BTreeSet<T>, <D as Deserializer>::Error>
where D: Deserializer,

Source§

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

Source§

fn deserialize<D>( deserializer: D, ) -> Result<LinkedList<T>, <D as Deserializer>::Error>
where D: Deserializer,

Source§

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

Source§

fn deserialize<D>( deserializer: D, ) -> Result<VecDeque<T>, <D as Deserializer>::Error>
where D: Deserializer,

Source§

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

Source§

fn deserialize<D>(deserializer: D) -> Result<Rc<T>, <D as Deserializer>::Error>
where D: Deserializer,

Source§

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

Source§

fn deserialize<D>(deserializer: D) -> Result<Arc<T>, <D as Deserializer>::Error>
where D: Deserializer,

Source§

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

Source§

fn deserialize<D>(deserializer: D) -> Result<Vec<T>, <D as Deserializer>::Error>
where D: Deserializer,

Source§

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

Source§

fn deserialize<D>( deserializer: D, ) -> Result<Cell<T>, <D as Deserializer>::Error>
where D: Deserializer,

Source§

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

Source§

fn deserialize<D>( deserializer: D, ) -> Result<RefCell<T>, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for PhantomData<T>

Source§

fn deserialize<D>( deserializer: D, ) -> Result<PhantomData<T>, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for Mutex<T>
where T: Deserialize,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<Mutex<T>, <D as Deserializer>::Error>
where D: Deserializer,

Source§

impl<T> Deserialize for RwLock<T>
where T: Deserialize,

Source§

fn deserialize<D>( deserializer: D, ) -> Result<RwLock<T>, <D as Deserializer>::Error>
where D: Deserializer,

Source§

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

Source§

fn deserialize<D>( deserializer: D, ) -> Result<Result<T, E>, <D as Deserializer>::Error>
where D: Deserializer,

Source§

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

Source§

fn deserialize<D>( deserializer: D, ) -> Result<HashSet<T, S>, <D as Deserializer>::Error>
where D: Deserializer,

Implementors§