Trait serde::de::Visitor
[−]
[src]
pub trait Visitor: Sized { type Value; fn expecting(&self, formatter: &mut Formatter) -> Result; fn visit_bool<E>(self, v: bool) -> Result<Self::Value, E> where E: Error { ... } fn visit_isize<E>(self, v: isize) -> Result<Self::Value, E> where E: Error { ... } fn visit_i8<E>(self, v: i8) -> Result<Self::Value, E> where E: Error { ... } fn visit_i16<E>(self, v: i16) -> Result<Self::Value, E> where E: Error { ... } fn visit_i32<E>(self, v: i32) -> Result<Self::Value, E> where E: Error { ... } fn visit_i64<E>(self, v: i64) -> Result<Self::Value, E> where E: Error { ... } fn visit_usize<E>(self, v: usize) -> Result<Self::Value, E> where E: Error { ... } fn visit_u8<E>(self, v: u8) -> Result<Self::Value, E> where E: Error { ... } fn visit_u16<E>(self, v: u16) -> Result<Self::Value, E> where E: Error { ... } fn visit_u32<E>(self, v: u32) -> Result<Self::Value, E> where E: Error { ... } fn visit_u64<E>(self, v: u64) -> Result<Self::Value, E> where E: Error { ... } fn visit_f32<E>(self, v: f32) -> Result<Self::Value, E> where E: Error { ... } fn visit_f64<E>(self, v: f64) -> Result<Self::Value, E> where E: Error { ... } fn visit_char<E>(self, v: char) -> Result<Self::Value, E> where E: Error { ... } fn visit_str<E>(self, v: &str) -> Result<Self::Value, E> where E: Error { ... } fn visit_string<E>(self, v: String) -> Result<Self::Value, E> where E: Error { ... } fn visit_unit<E>(self) -> Result<Self::Value, E> where E: Error { ... } fn visit_none<E>(self) -> Result<Self::Value, E> where E: Error { ... } fn visit_some<D>(self, deserializer: D) -> Result<Self::Value, D::Error> where D: Deserializer { ... } fn visit_newtype_struct<D>(self,
deserializer: D)
-> Result<Self::Value, D::Error> where D: Deserializer { ... } fn visit_seq<V>(self, visitor: V) -> Result<Self::Value, V::Error> where V: SeqVisitor { ... } fn visit_map<V>(self, visitor: V) -> Result<Self::Value, V::Error> where V: MapVisitor { ... } fn visit_enum<V>(self, visitor: V) -> Result<Self::Value, V::Error> where V: EnumVisitor { ... } fn visit_bytes<E>(self, v: &[u8]) -> Result<Self::Value, E> where E: Error { ... } fn visit_byte_buf<E>(self, v: Vec<u8>) -> Result<Self::Value, E> where E: Error { ... } }
This trait represents a visitor that walks through a deserializer.
/// A visitor that deserializes a long string - a string containing at least /// some minimum number of bytes. struct LongString { min: usize, } impl Visitor for LongString { type Value = String; fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { write!(formatter, "a string containing at least {} bytes", self.min) } fn visit_str<E>(self, s: &str) -> Result<Self::Value, E> where E: Error { if s.len() >= self.min { Ok(s.to_owned()) } else { Err(Error::invalid_value(Unexpected::Str(s), &self)) } } }
Associated Types
type Value
The value produced by this visitor.
Required Methods
fn expecting(&self, formatter: &mut Formatter) -> Result
Format a message stating what data this Visitor expects to receive.
This is used in error messages. The message should complete the sentence "This Visitor expects to receive ...", for example the message could be "an integer between 0 and 64". The message should not be capitalized and should not end with a period.
fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { write!(formatter, "an integer between 0 and {}", self.max) }
Provided Methods
fn visit_bool<E>(self, v: bool) -> Result<Self::Value, E> where E: Error
visit_bool
deserializes a bool
into a Value
.
fn visit_isize<E>(self, v: isize) -> Result<Self::Value, E> where E: Error
visit_isize
deserializes a isize
into a Value
.
fn visit_i8<E>(self, v: i8) -> Result<Self::Value, E> where E: Error
visit_i8
deserializes a i8
into a Value
.
fn visit_i16<E>(self, v: i16) -> Result<Self::Value, E> where E: Error
visit_i16
deserializes a i16
into a Value
.
fn visit_i32<E>(self, v: i32) -> Result<Self::Value, E> where E: Error
visit_i32
deserializes a i32
into a Value
.
fn visit_i64<E>(self, v: i64) -> Result<Self::Value, E> where E: Error
visit_i64
deserializes a i64
into a Value
.
fn visit_usize<E>(self, v: usize) -> Result<Self::Value, E> where E: Error
visit_usize
deserializes a usize
into a Value
.
fn visit_u8<E>(self, v: u8) -> Result<Self::Value, E> where E: Error
visit_u8
deserializes a u8
into a Value
.
fn visit_u16<E>(self, v: u16) -> Result<Self::Value, E> where E: Error
visit_u16
deserializes a u16
into a Value
.
fn visit_u32<E>(self, v: u32) -> Result<Self::Value, E> where E: Error
visit_u32
deserializes a u32
into a Value
.
fn visit_u64<E>(self, v: u64) -> Result<Self::Value, E> where E: Error
visit_u64
deserializes a u64
into a Value
.
fn visit_f32<E>(self, v: f32) -> Result<Self::Value, E> where E: Error
visit_f32
deserializes a f32
into a Value
.
fn visit_f64<E>(self, v: f64) -> Result<Self::Value, E> where E: Error
visit_f64
deserializes a f64
into a Value
.
fn visit_char<E>(self, v: char) -> Result<Self::Value, E> where E: Error
visit_char
deserializes a char
into a Value
.
fn visit_str<E>(self, v: &str) -> Result<Self::Value, E> where E: Error
visit_str
deserializes a &str
into a Value
.
fn visit_string<E>(self, v: String) -> Result<Self::Value, E> where E: Error
visit_string
deserializes a String
into a Value
. This allows a deserializer to avoid
a copy if it is deserializing a string from a String
type. By default it passes a &str
to the visit_str
method.
fn visit_unit<E>(self) -> Result<Self::Value, E> where E: Error
visit_unit
deserializes a ()
into a Value
.
fn visit_none<E>(self) -> Result<Self::Value, E> where E: Error
visit_none
deserializes a none value into a Value
.
fn visit_some<D>(self, deserializer: D) -> Result<Self::Value, D::Error> where D: Deserializer
visit_some
deserializes a value into a Value
.
fn visit_newtype_struct<D>(self,
deserializer: D)
-> Result<Self::Value, D::Error> where D: Deserializer
deserializer: D)
-> Result<Self::Value, D::Error> where D: Deserializer
visit_newtype_struct
deserializes a value into a Value
.
fn visit_seq<V>(self, visitor: V) -> Result<Self::Value, V::Error> where V: SeqVisitor
visit_seq
deserializes a SeqVisitor
into a Value
.
fn visit_map<V>(self, visitor: V) -> Result<Self::Value, V::Error> where V: MapVisitor
visit_map
deserializes a MapVisitor
into a Value
.
fn visit_enum<V>(self, visitor: V) -> Result<Self::Value, V::Error> where V: EnumVisitor
visit_enum
deserializes a EnumVisitor
into a Value
.
fn visit_bytes<E>(self, v: &[u8]) -> Result<Self::Value, E> where E: Error
visit_bytes
deserializes a &[u8]
into a Value
.
fn visit_byte_buf<E>(self, v: Vec<u8>) -> Result<Self::Value, E> where E: Error
visit_byte_buf
deserializes a Vec<u8>
into a Value
.
Implementors
impl Visitor for ByteBufVisitor
impl Visitor for UnitVisitor
impl Visitor for BoolVisitor
impl<T> Visitor for PhantomDataVisitor<T>
impl<T> Visitor for BinaryHeapVisitor<T> where T: Deserialize + Ord
impl<T> Visitor for BTreeSetVisitor<T> where T: Deserialize + Eq + Ord
impl<T> Visitor for LinkedListVisitor<T> where T: Deserialize
impl<T, S> Visitor for HashSetVisitor<T, S> where T: Deserialize + Eq + Hash,
S: BuildHasher + Defaultimpl<T> Visitor for VecVisitor<T> where T: Deserialize
impl<T> Visitor for VecDequeVisitor<T> where T: Deserialize
impl<T0: Deserialize> Visitor for TupleVisitor1<T0>
impl<T0: Deserialize, T1: Deserialize> Visitor for TupleVisitor2<T0, T1>
impl<T0: Deserialize, T1: Deserialize, T2: Deserialize> Visitor for TupleVisitor3<T0, T1, T2>
impl<T0: Deserialize, T1: Deserialize, T2: Deserialize, T3: Deserialize> Visitor for TupleVisitor4<T0, T1, T2, T3>
impl<T0: Deserialize, T1: Deserialize, T2: Deserialize, T3: Deserialize, T4: Deserialize> Visitor for TupleVisitor5<T0, T1, T2, T3, T4>
impl<T0: Deserialize, T1: Deserialize, T2: Deserialize, T3: Deserialize, T4: Deserialize, T5: Deserialize> Visitor for TupleVisitor6<T0, T1, T2, T3, T4, T5>
impl<T0: Deserialize, T1: Deserialize, T2: Deserialize, T3: Deserialize, T4: Deserialize, T5: Deserialize, T6: Deserialize> Visitor for TupleVisitor7<T0, T1, T2, T3, T4, T5, T6>
impl<T0: Deserialize, T1: Deserialize, T2: Deserialize, T3: Deserialize, T4: Deserialize, T5: Deserialize, T6: Deserialize, T7: Deserialize> Visitor for TupleVisitor8<T0, T1, T2, T3, T4, T5, T6, T7>
impl<T0: Deserialize, T1: Deserialize, T2: Deserialize, T3: Deserialize, T4: Deserialize, T5: Deserialize, T6: Deserialize, T7: Deserialize, T8: Deserialize> Visitor for TupleVisitor9<T0, T1, T2, T3, T4, T5, T6, T7, T8>
impl<T0: Deserialize, T1: Deserialize, T2: Deserialize, T3: Deserialize, T4: Deserialize, T5: Deserialize, T6: Deserialize, T7: Deserialize, T8: Deserialize, T9: Deserialize> Visitor for TupleVisitor10<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>
impl<T0: Deserialize, T1: Deserialize, T2: Deserialize, T3: Deserialize, T4: Deserialize, T5: Deserialize, T6: Deserialize, T7: Deserialize, T8: Deserialize, T9: Deserialize, T10: Deserialize> Visitor for TupleVisitor11<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>
impl<T0: Deserialize, T1: Deserialize, T2: Deserialize, T3: Deserialize, T4: Deserialize, T5: Deserialize, T6: Deserialize, T7: Deserialize, T8: Deserialize, T9: Deserialize, T10: Deserialize, T11: Deserialize> Visitor for TupleVisitor12<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>
impl<T0: Deserialize, T1: Deserialize, T2: Deserialize, T3: Deserialize, T4: Deserialize, T5: Deserialize, T6: Deserialize, T7: Deserialize, T8: Deserialize, T9: Deserialize, T10: Deserialize, T11: Deserialize, T12: Deserialize> Visitor for TupleVisitor13<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>
impl<T0: Deserialize, T1: Deserialize, T2: Deserialize, T3: Deserialize, T4: Deserialize, T5: Deserialize, T6: Deserialize, T7: Deserialize, T8: Deserialize, T9: Deserialize, T10: Deserialize, T11: Deserialize, T12: Deserialize, T13: Deserialize> Visitor for TupleVisitor14<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>
impl<T0: Deserialize, T1: Deserialize, T2: Deserialize, T3: Deserialize, T4: Deserialize, T5: Deserialize, T6: Deserialize, T7: Deserialize, T8: Deserialize, T9: Deserialize, T10: Deserialize, T11: Deserialize, T12: Deserialize, T13: Deserialize, T14: Deserialize> Visitor for TupleVisitor15<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>
impl<T0: Deserialize, T1: Deserialize, T2: Deserialize, T3: Deserialize, T4: Deserialize, T5: Deserialize, T6: Deserialize, T7: Deserialize, T8: Deserialize, T9: Deserialize, T10: Deserialize, T11: Deserialize, T12: Deserialize, T13: Deserialize, T14: Deserialize, T15: Deserialize> Visitor for TupleVisitor16<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>
impl<K, V> Visitor for BTreeMapVisitor<K, V> where K: Deserialize + Ord,
V: Deserializeimpl<K, V, S> Visitor for HashMapVisitor<K, V, S> where K: Deserialize + Eq + Hash,
V: Deserialize,
S: BuildHasher + Default