pub trait IntoDeserializer<'de, E = Error>where
    E: Error,
{ type Deserializer: Deserializer<'de, Error = E>; 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 std::str::FromStr;
use serde::Deserialize;
use serde::de::{value, IntoDeserializer};

#[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.

Implementations on Foreign Types§

source§

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

source§

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

source§

impl<'de, E> IntoDeserializer<'de, E> for u32where
    E: Error,

source§

impl<'de, E> IntoDeserializer<'de, E> for i64where
    E: Error,

source§

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

source§

impl<'de, E> IntoDeserializer<'de, E> for Stringwhere
    E: Error,

source§

impl<'de, E> IntoDeserializer<'de, E> for f32where
    E: Error,

source§

impl<'de, E> IntoDeserializer<'de, E> for i32where
    E: Error,

source§

impl<'de, E> IntoDeserializer<'de, E> for u16where
    E: Error,

source§

impl<'de, E> IntoDeserializer<'de, E> for u8where
    E: Error,

source§

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

source§

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

source§

impl<'de, E> IntoDeserializer<'de, E> for usizewhere
    E: Error,

source§

impl<'de, E> IntoDeserializer<'de, E> for isizewhere
    E: Error,

source§

impl<'de, E> IntoDeserializer<'de, E> for u128where
    E: Error,

source§

impl<'de, E> IntoDeserializer<'de, E> for u64where
    E: Error,

source§

impl<'de, E> IntoDeserializer<'de, E> for f64where
    E: Error,

source§

impl<'de, E> IntoDeserializer<'de, E> for i8where
    E: Error,

source§

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

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,

§

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

source§

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

source§

impl<'de, E> IntoDeserializer<'de, E> for boolwhere
    E: Error,

source§

impl<'de, E> IntoDeserializer<'de, E> for i128where
    E: Error,

source§

impl<'de, E> IntoDeserializer<'de, E> for charwhere
    E: Error,

source§

impl<'de, E> IntoDeserializer<'de, E> for i16where
    E: Error,

source§

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

source§

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>

source§

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

source§

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

Implementors§

source§

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

source§

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