Skip to main content

IntoDeserializer

Trait IntoDeserializer 

Source
pub trait IntoDeserializer<'de, E = Error>
where E: Error,
{ type Deserializer: Deserializer<'de, Error = E>; // Required method fn into_deserializer(self) -> Self::Deserializer; }
Expand description

Converts an existing value into a Deserializer from which other values can be deserialized.

§Lifetime

The 'de lifetime of this trait is the lifetime of data that may be borrowed from the resulting Deserializer. See the page Understanding deserializer lifetimes for a more detailed explanation of these lifetimes.

§Example

use serde::de::{value, Deserialize, IntoDeserializer};
use serde_derive::Deserialize;
use std::str::FromStr;

#[derive(Deserialize)]
enum Setting {
    On,
    Off,
}

impl FromStr for Setting {
    type Err = value::Error;

    fn from_str(s: &str) -> Result<Self, Self::Err> {
        Self::deserialize(s.into_deserializer())
    }
}

Required Associated Types§

Source

type Deserializer: Deserializer<'de, Error = E>

The type of the deserializer being converted into.

Required Methods§

Source

fn into_deserializer(self) -> Self::Deserializer

Convert this value into a deserializer.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

§

impl IntoDeserializer<'_, Error> for Map<String, Value>

§

type Deserializer = Map<String, Value>

§

fn into_deserializer(self) -> Map<String, Value>

§

impl IntoDeserializer<'_, Error> for Value

§

type Deserializer = Value

§

fn into_deserializer(self) -> Value

Source§

impl<'de, 'a, E> IntoDeserializer<'de, E> for &'a [u8]
where E: Error,

Source§

impl<'de, 'a, E> IntoDeserializer<'de, E> for &'a str
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for ()
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for bool
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for char
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for f32
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for f64
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for i8
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for i16
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for i32
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for i64
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for i128
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for isize
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for u8
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for u16
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for u32
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for u64
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for u128
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for usize
where E: Error,

§

impl<'de, K, V, S, E> IntoDeserializer<'de, E> for IndexMap<K, V, S>
where K: IntoDeserializer<'de, E> + Eq + Hash, V: IntoDeserializer<'de, E>, S: BuildHasher, E: Error,

§

type Deserializer = MapDeserializer<'de, <IndexMap<K, V, S> as IntoIterator>::IntoIter, E>

§

fn into_deserializer( self, ) -> <IndexMap<K, V, S> as IntoDeserializer<'de, E>>::Deserializer

§

impl<'de, T, S, E> IntoDeserializer<'de, E> for IndexSet<T, S>
where T: IntoDeserializer<'de, E> + Eq + Hash, S: BuildHasher, E: Error,

§

type Deserializer = SeqDeserializer<<IndexSet<T, S> as IntoIterator>::IntoIter, E>

§

fn into_deserializer( self, ) -> <IndexSet<T, S> as IntoDeserializer<'de, E>>::Deserializer

Source§

impl<'de> IntoDeserializer<'de, Error> for &'de Map<String, Value>

Source§

impl<'de> IntoDeserializer<'de, Error> for &'de Value

§

impl<'de> IntoDeserializer<'de, Error> for Deserializer<'de>

§

type Deserializer = Deserializer<'de>

§

fn into_deserializer( self, ) -> <Deserializer<'de> as IntoDeserializer<'de, Error>>::Deserializer

Source§

impl<'de> IntoDeserializer<'de, Error> for Map<String, Value>

§

impl<'de> IntoDeserializer<'de, Error> for Spanned<DeValue<'de>>

§

type Deserializer = ValueDeserializer<'de>

§

fn into_deserializer( self, ) -> <Spanned<DeValue<'de>> as IntoDeserializer<'de, Error>>::Deserializer

§

impl<'de> IntoDeserializer<'de, Error> for Spanned<Map<Spanned<Cow<'de, str>>, Spanned<DeValue<'de>>>>

§

type Deserializer = Deserializer<'de>

§

fn into_deserializer( self, ) -> <Spanned<Map<Spanned<Cow<'de, str>>, Spanned<DeValue<'de>>>> as IntoDeserializer<'de, Error>>::Deserializer

Source§

impl<'de> IntoDeserializer<'de, Error> for Value

§

impl<'de> IntoDeserializer<'de, Error> for ValueDeserializer<'de>

§

type Deserializer = ValueDeserializer<'de>

§

fn into_deserializer( self, ) -> <ValueDeserializer<'de> as IntoDeserializer<'de, Error>>::Deserializer

Implementors§

Source§

impl<'de, 'a, E> IntoDeserializer<'de, E> for BytesDeserializer<'a, E>
where E: Error,

Source§

impl<'de, 'a, E> IntoDeserializer<'de, E> for Cow<'a, str>
where E: Error,

Available on crate features alloc or std only.
Source§

impl<'de, 'a, E> IntoDeserializer<'de, E> for CowStrDeserializer<'a, E>
where E: Error,

Available on crate features alloc or std only.
Source§

impl<'de, 'a, E> IntoDeserializer<'de, E> for StrDeserializer<'a, E>
where E: Error,

Source§

impl<'de, A> IntoDeserializer<'de, <A as EnumAccess<'de>>::Error> for EnumAccessDeserializer<A>
where A: EnumAccess<'de>,

Source§

impl<'de, A> IntoDeserializer<'de, <A as MapAccess<'de>>::Error> for MapAccessDeserializer<A>
where A: MapAccess<'de>,

Source§

impl<'de, A> IntoDeserializer<'de, <A as SeqAccess<'de>>::Error> for SeqAccessDeserializer<A>
where A: SeqAccess<'de>,

Source§

impl<'de, E> IntoDeserializer<'de, E> for BoolDeserializer<E>
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for BorrowedBytesDeserializer<'de, E>
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for BorrowedStrDeserializer<'de, E>
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for CharDeserializer<E>
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for F32Deserializer<E>
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for F64Deserializer<E>
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for I8Deserializer<E>
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for I16Deserializer<E>
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for I32Deserializer<E>
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for I64Deserializer<E>
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for I128Deserializer<E>
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for IsizeDeserializer<E>
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for String
where E: Error,

Available on crate features alloc or std only.
Source§

impl<'de, E> IntoDeserializer<'de, E> for StringDeserializer<E>
where E: Error,

Available on crate features alloc or std only.
Source§

impl<'de, E> IntoDeserializer<'de, E> for U8Deserializer<E>
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for U16Deserializer<E>
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for U32Deserializer<E>
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for U64Deserializer<E>
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for U128Deserializer<E>
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for UnitDeserializer<E>
where E: Error,

Source§

impl<'de, E> IntoDeserializer<'de, E> for UsizeDeserializer<E>
where E: Error,

Source§

impl<'de, I, E> IntoDeserializer<'de, E> for MapDeserializer<'de, I, E>
where I: Iterator, <I as Iterator>::Item: Pair, <<I as Iterator>::Item as Pair>::First: IntoDeserializer<'de, E>, <<I as Iterator>::Item as Pair>::Second: IntoDeserializer<'de, E>, E: Error,

Source§

impl<'de, I, T, E> IntoDeserializer<'de, E> for SeqDeserializer<I, E>
where I: Iterator<Item = T>, T: IntoDeserializer<'de, E>, E: Error,

Source§

impl<'de, K, V, E> IntoDeserializer<'de, E> for BTreeMap<K, V>
where K: IntoDeserializer<'de, E> + Eq + Ord, V: IntoDeserializer<'de, E>, E: Error,

Available on crate features alloc or std only.
Source§

impl<'de, K, V, S, E> IntoDeserializer<'de, E> for HashMap<K, V, S>
where K: IntoDeserializer<'de, E> + Eq + Hash, V: IntoDeserializer<'de, E>, S: BuildHasher, E: Error,

Available on crate feature std only.
Source§

impl<'de, T, E> IntoDeserializer<'de, E> for BTreeSet<T>
where T: IntoDeserializer<'de, E> + Eq + Ord, E: Error,

Available on crate features alloc or std only.
Source§

impl<'de, T, E> IntoDeserializer<'de, E> for Vec<T>
where T: IntoDeserializer<'de, E>, E: Error,

Available on crate features alloc or std only.
Source§

impl<'de, T, S, E> IntoDeserializer<'de, E> for HashSet<T, S>
where T: IntoDeserializer<'de, E> + Eq + Hash, S: BuildHasher, E: Error,

Available on crate feature std only.