Trait IntoDeserializer
pub trait IntoDeserializer<'de, E: Error = Error>
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())
}
}
Associated Types
type Deserializer: Deserializer<'de, Error = E>;The type of the deserializer being converted into.
Required Methods
fn into_deserializer(self) -> Self::DeserializerConvert this value into a deserializer.
Implementors
impl<'de, 'a, E> IntoDeserializer<'de, E> for &'a [u8] where E: Error,impl<'de, 'a, E> IntoDeserializer<'de, E> for &'a str where E: Error,impl<'de, 'a, E> IntoDeserializer<'de, E> for BytesDeserializer<'a, E> where E: Error,impl<'de, 'a, E> IntoDeserializer<'de, E> for Cow<'a, str> where E: Error,impl<'de, 'a, E> IntoDeserializer<'de, E> for CowStrDeserializer<'a, E> where E: Error,impl<'de, 'a, E> IntoDeserializer<'de, E> for StrDeserializer<'a, E> where E: Error,impl<'de, A> IntoDeserializer<'de, <A as EnumAccess<'de>>::Error> for EnumAccessDeserializer<A> where A: EnumAccess<'de>,impl<'de, A> IntoDeserializer<'de, <A as MapAccess<'de>>::Error> for MapAccessDeserializer<A> where A: MapAccess<'de>,impl<'de, A> IntoDeserializer<'de, <A as SeqAccess<'de>>::Error> for SeqAccessDeserializer<A> where A: SeqAccess<'de>,impl<'de, E> IntoDeserializer<'de, E> for () where E: Error,impl<'de, E> IntoDeserializer<'de, E> for BoolDeserializer<E> where E: Error,impl<'de, E> IntoDeserializer<'de, E> for BorrowedBytesDeserializer<'de, E> where E: Error,impl<'de, E> IntoDeserializer<'de, E> for BorrowedStrDeserializer<'de, E> where E: Error,impl<'de, E> IntoDeserializer<'de, E> for CharDeserializer<E> where E: Error,impl<'de, E> IntoDeserializer<'de, E> for F32Deserializer<E> where E: Error,impl<'de, E> IntoDeserializer<'de, E> for F64Deserializer<E> where E: Error,impl<'de, E> IntoDeserializer<'de, E> for I128Deserializer<E> where E: Error,impl<'de, E> IntoDeserializer<'de, E> for I16Deserializer<E> where E: Error,impl<'de, E> IntoDeserializer<'de, E> for I32Deserializer<E> where E: Error,impl<'de, E> IntoDeserializer<'de, E> for I64Deserializer<E> where E: Error,impl<'de, E> IntoDeserializer<'de, E> for I8Deserializer<E> where E: Error,impl<'de, E> IntoDeserializer<'de, E> for IsizeDeserializer<E> where E: Error,impl<'de, E> IntoDeserializer<'de, E> for String where E: Error,impl<'de, E> IntoDeserializer<'de, E> for StringDeserializer<E> where E: Error,impl<'de, E> IntoDeserializer<'de, E> for U128Deserializer<E> where E: Error,impl<'de, E> IntoDeserializer<'de, E> for U16Deserializer<E> where E: Error,impl<'de, E> IntoDeserializer<'de, E> for U32Deserializer<E> where E: Error,impl<'de, E> IntoDeserializer<'de, E> for U64Deserializer<E> where E: Error,impl<'de, E> IntoDeserializer<'de, E> for U8Deserializer<E> where E: Error,impl<'de, E> IntoDeserializer<'de, E> for UnitDeserializer<E> where E: Error,impl<'de, E> IntoDeserializer<'de, E> for UsizeDeserializer<E> where E: Error,impl<'de, E> IntoDeserializer<'de, E> for bool where E: Error,impl<'de, E> IntoDeserializer<'de, E> for char where E: Error,impl<'de, E> IntoDeserializer<'de, E> for f32 where E: Error,impl<'de, E> IntoDeserializer<'de, E> for f64 where E: Error,impl<'de, E> IntoDeserializer<'de, E> for i128 where E: Error,impl<'de, E> IntoDeserializer<'de, E> for i16 where E: Error,impl<'de, E> IntoDeserializer<'de, E> for i32 where E: Error,impl<'de, E> IntoDeserializer<'de, E> for i64 where E: Error,impl<'de, E> IntoDeserializer<'de, E> for i8 where E: Error,impl<'de, E> IntoDeserializer<'de, E> for isize where E: Error,impl<'de, E> IntoDeserializer<'de, E> for u128 where E: Error,impl<'de, E> IntoDeserializer<'de, E> for u16 where E: Error,impl<'de, E> IntoDeserializer<'de, E> for u32 where E: Error,impl<'de, E> IntoDeserializer<'de, E> for u64 where E: Error,impl<'de, E> IntoDeserializer<'de, E> for u8 where E: Error,impl<'de, E> IntoDeserializer<'de, E> for usize where E: Error,impl<'de, I, E> IntoDeserializer<'de, E> for MapDeserializer<'de, I, E> where I: Iterator, I::Item: Pair, <I::Item as Pair>::First: IntoDeserializer<'de, E>, <I::Item as Pair>::Second: IntoDeserializer<'de, E>, E: Error,impl<'de, I, T, E> IntoDeserializer<'de, E> for SeqDeserializer<I, E> where I: Iterator<Item = T>, T: IntoDeserializer<'de, E>, E: Error,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,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,impl<'de, T, E> IntoDeserializer<'de, E> for BTreeSet<T> where T: IntoDeserializer<'de, E> + Eq + Ord, E: Error,impl<'de, T, E> IntoDeserializer<'de, E> for Vec<T> where T: IntoDeserializer<'de, E>, E: Error,impl<'de, T, S, E> IntoDeserializer<'de, E> for HashSet<T, S> where T: IntoDeserializer<'de, E> + Eq + Hash, S: BuildHasher, E: Error,