Trait serde::de::Deserializer [] [src]

pub trait Deserializer {
    type Error: Error;
    fn deserialize<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor;
    fn deserialize_bool<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor;
    fn deserialize_usize<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor;
    fn deserialize_u8<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor;
    fn deserialize_u16<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor;
    fn deserialize_u32<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor;
    fn deserialize_u64<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor;
    fn deserialize_isize<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor;
    fn deserialize_i8<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor;
    fn deserialize_i16<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor;
    fn deserialize_i32<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor;
    fn deserialize_i64<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor;
    fn deserialize_f32<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor;
    fn deserialize_f64<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor;
    fn deserialize_char<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor;
    fn deserialize_str<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor;
    fn deserialize_string<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor;
    fn deserialize_unit<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor;
    fn deserialize_option<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor;
    fn deserialize_seq<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor;
    fn deserialize_seq_fixed_size<V>(&mut self, len: usize, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor;
    fn deserialize_bytes<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor;
    fn deserialize_map<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor;
    fn deserialize_unit_struct<V>(&mut self, name: &'static str, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor;
    fn deserialize_newtype_struct<V>(&mut self, name: &'static str, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor;
    fn deserialize_tuple_struct<V>(&mut self, name: &'static str, len: usize, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor;
    fn deserialize_struct<V>(&mut self, name: &'static str, fields: &'static [&'static str], visitor: V) -> Result<V::Value, Self::Error> where V: Visitor;
    fn deserialize_struct_field<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor;
    fn deserialize_tuple<V>(&mut self, len: usize, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor;
    fn deserialize_enum<V>(&mut self, name: &'static str, variants: &'static [&'static str], visitor: V) -> Result<V::Value, Self::Error> where V: EnumVisitor;
    fn deserialize_ignored_any<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor;
}

Deserializer is a trait that can deserialize values by threading a Visitor trait through a value. It supports two entry point styles which enables different kinds of deserialization.

1) The deserialize method. File formats like JSON embed the type of its construct in its file format. This allows the Deserializer to deserialize into a generic type like json::Value, which can represent all JSON types.

2) The deserialize_* methods. File formats like bincode do not embed in its format how to decode its values. It relies instead on the Deserialize type to hint to the Deserializer with the deserialize_* methods how it should parse the next value. One downside though to only supporting the deserialize_* types is that it does not allow for deserializing into a generic json::Value-esque type.

Associated Types

The error type that can be returned if some error occurs during deserialization.

Required Methods

This method walks a visitor through a value as it is being deserialized.

This method hints that the Deserialize type is expecting a bool value.

This method hints that the Deserialize type is expecting an usize value. A reasonable default is to forward to deserialize_u64.

This method hints that the Deserialize type is expecting an u8 value. A reasonable default is to forward to deserialize_u64.

This method hints that the Deserialize type is expecting an u16 value. A reasonable default is to forward to deserialize_u64.

This method hints that the Deserialize type is expecting an u32 value. A reasonable default is to forward to deserialize_u64.

This method hints that the Deserialize type is expecting an u64 value.

This method hints that the Deserialize type is expecting an isize value. A reasonable default is to forward to deserialize_i64.

This method hints that the Deserialize type is expecting an i8 value. A reasonable default is to forward to deserialize_i64.

This method hints that the Deserialize type is expecting an i16 value. A reasonable default is to forward to deserialize_i64.

This method hints that the Deserialize type is expecting an i32 value. A reasonable default is to forward to deserialize_i64.

This method hints that the Deserialize type is expecting an i64 value.

This method hints that the Deserialize type is expecting a f32 value. A reasonable default is to forward to deserialize_f64.

This method hints that the Deserialize type is expecting a f64 value.

This method hints that the Deserialize type is expecting a char value.

This method hints that the Deserialize type is expecting a &str value.

This method hints that the Deserialize type is expecting a String value.

This method hints that the Deserialize type is expecting an unit value.

This method hints that the Deserialize type is expecting an Option value. This allows deserializers that encode an optional value as a nullable value to convert the null value into a None, and a regular value as Some(value).

This method hints that the Deserialize type is expecting a sequence value. This allows deserializers to parse sequences that aren't tagged as sequences.

This method hints that the Deserialize type is expecting a fixed size array. This allows deserializers to parse arrays that aren't tagged as arrays.

This method hints that the Deserialize type is expecting a Vec<u8>. This allows deserializers that provide a custom byte vector serialization to properly deserialize the type.

This method hints that the Deserialize type is expecting a map of values. This allows deserializers to parse sequences that aren't tagged as maps.

This method hints that the Deserialize type is expecting a unit struct. This allows deserializers to a unit struct that aren't tagged as a unit struct.

This method hints that the Deserialize type is expecting a newtype struct. This allows deserializers to a newtype struct that aren't tagged as a newtype struct. A reasonable default is to simply deserialize the expected value directly.

This method hints that the Deserialize type is expecting a tuple struct. This allows deserializers to parse sequences that aren't tagged as sequences.

This method hints that the Deserialize type is expecting a struct. This allows deserializers to parse sequences that aren't tagged as maps.

This method hints that the Deserialize type is expecting some sort of struct field name. This allows deserializers to choose between &str, usize, or &[u8] to properly deserialize a struct field.

This method hints that the Deserialize type is expecting a tuple value. This allows deserializers that provide a custom tuple serialization to properly deserialize the type.

This method hints that the Deserialize type is expecting an enum value. This allows deserializers that provide a custom enumeration serialization to properly deserialize the type.

This method hints that the Deserialize type needs to deserialize a value whose type doesn't matter because it is ignored.

Implementors