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_fixed_size_array<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, _enum: &'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
type Error: Error
The error type that can be returned if some error occurs during deserialization.
Required Methods
fn deserialize<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor
This method walks a visitor through a value as it is being deserialized.
Provided Methods
fn deserialize_bool<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor
This method hints that the Deserialize type is expecting a bool value.
fn deserialize_usize<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor
This method hints that the Deserialize type is expecting an usize value.
fn deserialize_u8<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor
This method hints that the Deserialize type is expecting an u8 value.
fn deserialize_u16<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor
This method hints that the Deserialize type is expecting an u16 value.
fn deserialize_u32<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor
This method hints that the Deserialize type is expecting an u32 value.
fn deserialize_u64<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor
This method hints that the Deserialize type is expecting an u64 value.
fn deserialize_isize<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor
This method hints that the Deserialize type is expecting an isize value.
fn deserialize_i8<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor
This method hints that the Deserialize type is expecting an i8 value.
fn deserialize_i16<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor
This method hints that the Deserialize type is expecting an i16 value.
fn deserialize_i32<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor
This method hints that the Deserialize type is expecting an i32 value.
fn deserialize_i64<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor
This method hints that the Deserialize type is expecting an i64 value.
fn deserialize_f32<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor
This method hints that the Deserialize type is expecting a f32 value.
fn deserialize_f64<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor
This method hints that the Deserialize type is expecting a f64 value.
fn deserialize_char<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor
This method hints that the Deserialize type is expecting a char value.
fn deserialize_str<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor
This method hints that the Deserialize type is expecting a &str value.
fn deserialize_string<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor
This method hints that the Deserialize type is expecting a String value.
fn deserialize_unit<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor
This method hints that the Deserialize type is expecting an unit value.
fn deserialize_option<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor
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).
fn deserialize_seq<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor
This method hints that the Deserialize type is expecting a sequence value. This allows
deserializers to parse sequences that aren't tagged as sequences.
fn deserialize_fixed_size_array<V>(&mut self, _len: usize, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor
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.
By default, this deserializes arrays from a sequence.
fn deserialize_bytes<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor
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.
fn deserialize_map<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor
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.
fn deserialize_unit_struct<V>(&mut self, _name: &'static str, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor
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.
fn deserialize_newtype_struct<V>(&mut self, name: &'static str, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor
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.
fn deserialize_tuple_struct<V>(&mut self, _name: &'static str, len: usize, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor
This method hints that the Deserialize type is expecting a tuple struct. This allows
deserializers to parse sequences that aren't tagged as sequences.
fn deserialize_struct<V>(&mut self, _name: &'static str, _fields: &'static [&'static str], visitor: V) -> Result<V::Value, Self::Error> where V: Visitor
This method hints that the Deserialize type is expecting a struct. This allows
deserializers to parse sequences that aren't tagged as maps.
fn deserialize_struct_field<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor
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.
fn deserialize_tuple<V>(&mut self, _len: usize, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor
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.
fn deserialize_enum<V>(&mut self, _enum: &'static str, _variants: &'static [&'static str], _visitor: V) -> Result<V::Value, Self::Error> where V: EnumVisitor
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.
fn deserialize_ignored_any<V>(&mut self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor
This method hints that the Deserialize type needs to deserialize a value whose type
doesn't matter because it is ignored.
Implementors
impl<E> Deserializer for UnitDeserializer<E> where E: Errorimpl<E> Deserializer for BoolDeserializer<E> where E: Errorimpl<E> Deserializer for I8Deserializer<E> where E: Errorimpl<E> Deserializer for I16Deserializer<E> where E: Errorimpl<E> Deserializer for I32Deserializer<E> where E: Errorimpl<E> Deserializer for I64Deserializer<E> where E: Errorimpl<E> Deserializer for IsizeDeserializer<E> where E: Errorimpl<E> Deserializer for U8Deserializer<E> where E: Errorimpl<E> Deserializer for U16Deserializer<E> where E: Errorimpl<E> Deserializer for U32Deserializer<E> where E: Errorimpl<E> Deserializer for U64Deserializer<E> where E: Errorimpl<E> Deserializer for UsizeDeserializer<E> where E: Errorimpl<E> Deserializer for F32Deserializer<E> where E: Errorimpl<E> Deserializer for F64Deserializer<E> where E: Errorimpl<E> Deserializer for CharDeserializer<E> where E: Errorimpl<'a, E> Deserializer for StrDeserializer<'a, E> where E: Errorimpl<E> Deserializer for StringDeserializer<E> where E: Errorimpl<I, T, E> Deserializer for SeqDeserializer<I, E> where I: Iterator<Item=T>, T: ValueDeserializer<E>, E: Errorimpl<V_, E> Deserializer for SeqVisitorDeserializer<V_, E> where V_: SeqVisitor<Error=E>, E: Errorimpl<I, K, V, E> Deserializer for MapDeserializer<I, K, V, E> where I: Iterator<Item=(K, V)>, K: ValueDeserializer<E>, V: ValueDeserializer<E>, E: Errorimpl<V_, E> Deserializer for MapVisitorDeserializer<V_, E> where V_: MapVisitor<Error=E>, E: Errorimpl<'a, E> Deserializer for BytesDeserializer<'a, E> where E: Errorimpl<E> Deserializer for ByteBufDeserializer<E> where E: Error