Trait serde::ser::Serializer [−][src]
pub trait Serializer { type Error; fn visit_bool(&mut self, v: bool) -> Result<(), Self::Error>; fn visit_i64(&mut self, v: i64) -> Result<(), Self::Error>; fn visit_u64(&mut self, v: u64) -> Result<(), Self::Error>; fn visit_f64(&mut self, v: f64) -> Result<(), Self::Error>; fn visit_str(&mut self, value: &str) -> Result<(), Self::Error>; fn visit_unit(&mut self) -> Result<(), Self::Error>; fn visit_none(&mut self) -> Result<(), Self::Error>; fn visit_some<V>(&mut self, value: V) -> Result<(), Self::Error>
where
V: Serialize; fn visit_seq<V>(&mut self, visitor: V) -> Result<(), Self::Error>
where
V: SeqVisitor; fn visit_seq_elt<T>(&mut self, value: T) -> Result<(), Self::Error>
where
T: Serialize; fn visit_map<V>(&mut self, visitor: V) -> Result<(), Self::Error>
where
V: MapVisitor; fn visit_map_elt<K, V>(
&mut self,
key: K,
value: V
) -> Result<(), Self::Error>
where
K: Serialize,
V: Serialize; fn visit_isize(&mut self, v: isize) -> Result<(), Self::Error> { ... } fn visit_i8(&mut self, v: i8) -> Result<(), Self::Error> { ... } fn visit_i16(&mut self, v: i16) -> Result<(), Self::Error> { ... } fn visit_i32(&mut self, v: i32) -> Result<(), Self::Error> { ... } fn visit_usize(&mut self, v: usize) -> Result<(), Self::Error> { ... } fn visit_u8(&mut self, v: u8) -> Result<(), Self::Error> { ... } fn visit_u16(&mut self, v: u16) -> Result<(), Self::Error> { ... } fn visit_u32(&mut self, v: u32) -> Result<(), Self::Error> { ... } fn visit_f32(&mut self, v: f32) -> Result<(), Self::Error> { ... } fn visit_char(&mut self, v: char) -> Result<(), Self::Error> { ... } fn visit_bytes(&mut self, value: &[u8]) -> Result<(), Self::Error> { ... } fn visit_unit_struct(
&mut self,
_name: &'static str
) -> Result<(), Self::Error> { ... } fn visit_unit_variant(
&mut self,
_name: &'static str,
_variant_index: usize,
_variant: &'static str
) -> Result<(), Self::Error> { ... } fn visit_newtype_struct<T>(
&mut self,
name: &'static str,
value: T
) -> Result<(), Self::Error>
where
T: Serialize, { ... } fn visit_newtype_variant<T>(
&mut self,
name: &'static str,
variant_index: usize,
variant: &'static str,
value: T
) -> Result<(), Self::Error>
where
T: Serialize, { ... } fn visit_tuple<V>(&mut self, visitor: V) -> Result<(), Self::Error>
where
V: SeqVisitor, { ... } fn visit_tuple_elt<T>(&mut self, value: T) -> Result<(), Self::Error>
where
T: Serialize, { ... } fn visit_tuple_struct<V>(
&mut self,
_name: &'static str,
visitor: V
) -> Result<(), Self::Error>
where
V: SeqVisitor, { ... } fn visit_tuple_struct_elt<T>(&mut self, value: T) -> Result<(), Self::Error>
where
T: Serialize, { ... } fn visit_tuple_variant<V>(
&mut self,
_name: &'static str,
_variant_index: usize,
variant: &'static str,
visitor: V
) -> Result<(), Self::Error>
where
V: SeqVisitor, { ... } fn visit_tuple_variant_elt<T>(
&mut self,
value: T
) -> Result<(), Self::Error>
where
T: Serialize, { ... } fn visit_struct<V>(
&mut self,
_name: &'static str,
visitor: V
) -> Result<(), Self::Error>
where
V: MapVisitor, { ... } fn visit_struct_elt<V>(
&mut self,
key: &'static str,
value: V
) -> Result<(), Self::Error>
where
V: Serialize, { ... } fn visit_struct_variant<V>(
&mut self,
_name: &'static str,
_variant_index: usize,
variant: &'static str,
visitor: V
) -> Result<(), Self::Error>
where
V: MapVisitor, { ... } fn visit_struct_variant_elt<V>(
&mut self,
key: &'static str,
value: V
) -> Result<(), Self::Error>
where
V: Serialize, { ... } fn format() -> &'static str { ... } }
A trait that describes a type that can serialize a stream of values into the underlying format.
Associated Types
type Error
The error type that can be returned if some error occurs during serialization.
Required Methods
fn visit_bool(&mut self, v: bool) -> Result<(), Self::Error>
visit_bool
serializes a bool
value.
fn visit_i64(&mut self, v: i64) -> Result<(), Self::Error>
visit_i64
serializes a i64
value.
fn visit_u64(&mut self, v: u64) -> Result<(), Self::Error>
visit_u64
serializes a u64
value.
fn visit_f64(&mut self, v: f64) -> Result<(), Self::Error>
visit_f64
serializes a f64
value.
fn visit_str(&mut self, value: &str) -> Result<(), Self::Error>
visit_str
serializes a &str
.
fn visit_unit(&mut self) -> Result<(), Self::Error>
Serializes a ()
value.
fn visit_none(&mut self) -> Result<(), Self::Error>
Serializes a None
value.
fn visit_some<V>(&mut self, value: V) -> Result<(), Self::Error> where
V: Serialize,
V: Serialize,
Serializes a Some(...)
value.
fn visit_seq<V>(&mut self, visitor: V) -> Result<(), Self::Error> where
V: SeqVisitor,
V: SeqVisitor,
Serializes a sequence.
Callees of this method need to construct a SeqVisitor
, which iterates through each item
in the sequence.
fn visit_seq_elt<T>(&mut self, value: T) -> Result<(), Self::Error> where
T: Serialize,
T: Serialize,
Serializes a sequence element.
fn visit_map<V>(&mut self, visitor: V) -> Result<(), Self::Error> where
V: MapVisitor,
V: MapVisitor,
Serializes a map.
Callees of this method need to construct a MapVisitor
, which iterates through each item
in the map.
fn visit_map_elt<K, V>(&mut self, key: K, value: V) -> Result<(), Self::Error> where
K: Serialize,
V: Serialize,
K: Serialize,
V: Serialize,
Serializes a map element (key-value pair).
Provided Methods
fn visit_isize(&mut self, v: isize) -> Result<(), Self::Error>
visit_isize
serializes a isize
value. By default it casts the value to a i64
and
passes it to the visit_i64
method.
fn visit_i8(&mut self, v: i8) -> Result<(), Self::Error>
visit_i8
serializes a i8
value. By default it casts the value to a i64
and
passes it to the visit_i64
method.
fn visit_i16(&mut self, v: i16) -> Result<(), Self::Error>
visit_i16
serializes a i16
value. By default it casts the value to a i64
and
passes it to the visit_i64
method.
fn visit_i32(&mut self, v: i32) -> Result<(), Self::Error>
visit_i32
serializes a i32
value. By default it casts the value to a i64
and
passes it to the visit_i64
method.
fn visit_usize(&mut self, v: usize) -> Result<(), Self::Error>
visit_usize
serializes a usize
value. By default it casts the value to a u64
and
passes it to the visit_u64
method.
fn visit_u8(&mut self, v: u8) -> Result<(), Self::Error>
visit_u8
serializes a u8
value. By default it casts the value to a u64
and passes
it to the visit_u64
method.
fn visit_u16(&mut self, v: u16) -> Result<(), Self::Error>
visit_u32
serializes a u32
value. By default it casts the value to a u64
and passes
it to the visit_u64
method.
fn visit_u32(&mut self, v: u32) -> Result<(), Self::Error>
visit_u32
serializes a u32
value. By default it casts the value to a u64
and passes
it to the visit_u64
method.
fn visit_f32(&mut self, v: f32) -> Result<(), Self::Error>
visit_f32
serializes a f32
value. By default it casts the value to a f64
and passes
it to the visit_f64
method.
fn visit_char(&mut self, v: char) -> Result<(), Self::Error>
visit_char
serializes a character. By default it serializes it as a &str
containing a
single character.
fn visit_bytes(&mut self, value: &[u8]) -> Result<(), Self::Error>
visit_bytes
is a hook that enables those serialization formats that support serializing
byte slices separately from generic arrays. By default it serializes as a regular array.
fn visit_unit_struct(&mut self, _name: &'static str) -> Result<(), Self::Error>
Serializes a unit struct value.
By default, unit structs are serialized as a ()
.
fn visit_unit_variant(
&mut self,
_name: &'static str,
_variant_index: usize,
_variant: &'static str
) -> Result<(), Self::Error>
&mut self,
_name: &'static str,
_variant_index: usize,
_variant: &'static str
) -> Result<(), Self::Error>
Serializes a unit variant, otherwise known as a variant with no arguments.
By default, unit variants are serialized as a ()
.
fn visit_newtype_struct<T>(
&mut self,
name: &'static str,
value: T
) -> Result<(), Self::Error> where
T: Serialize,
&mut self,
name: &'static str,
value: T
) -> Result<(), Self::Error> where
T: Serialize,
The visit_newtype_struct
allows a tuple struct with a single element, also known as a
newtyped value, to be more efficiently serialized than a tuple struct with multiple items.
By default it just serializes the value as a tuple struct sequence.
fn visit_newtype_variant<T>(
&mut self,
name: &'static str,
variant_index: usize,
variant: &'static str,
value: T
) -> Result<(), Self::Error> where
T: Serialize,
&mut self,
name: &'static str,
variant_index: usize,
variant: &'static str,
value: T
) -> Result<(), Self::Error> where
T: Serialize,
The visit_newtype_variant
allows a variant with a single item to be more efficiently
serialized than a variant with multiple items. By default it just serializes the value as a
tuple variant sequence.
fn visit_tuple<V>(&mut self, visitor: V) -> Result<(), Self::Error> where
V: SeqVisitor,
V: SeqVisitor,
Serializes a tuple.
By default this serializes a tuple as a sequence.
fn visit_tuple_elt<T>(&mut self, value: T) -> Result<(), Self::Error> where
T: Serialize,
T: Serialize,
Serializes a tuple element.
By default, tuples are serialized as a sequence.
fn visit_tuple_struct<V>(
&mut self,
_name: &'static str,
visitor: V
) -> Result<(), Self::Error> where
V: SeqVisitor,
&mut self,
_name: &'static str,
visitor: V
) -> Result<(), Self::Error> where
V: SeqVisitor,
Serializes a tuple struct.
By default, tuple structs are serialized as a tuple.
fn visit_tuple_struct_elt<T>(&mut self, value: T) -> Result<(), Self::Error> where
T: Serialize,
T: Serialize,
Serializes a tuple struct element.
By default, tuple struct elements are serialized as a tuple element.
fn visit_tuple_variant<V>(
&mut self,
_name: &'static str,
_variant_index: usize,
variant: &'static str,
visitor: V
) -> Result<(), Self::Error> where
V: SeqVisitor,
&mut self,
_name: &'static str,
_variant_index: usize,
variant: &'static str,
visitor: V
) -> Result<(), Self::Error> where
V: SeqVisitor,
Serializes a tuple variant.
By default, tuple variants are serialized as a tuple struct.
fn visit_tuple_variant_elt<T>(&mut self, value: T) -> Result<(), Self::Error> where
T: Serialize,
T: Serialize,
Serializes a tuple element.
By default, tuples are serialized as a sequence.
fn visit_struct<V>(
&mut self,
_name: &'static str,
visitor: V
) -> Result<(), Self::Error> where
V: MapVisitor,
&mut self,
_name: &'static str,
visitor: V
) -> Result<(), Self::Error> where
V: MapVisitor,
Serializes a struct.
By default, structs are serialized as a map with the field name as the key.
fn visit_struct_elt<V>(
&mut self,
key: &'static str,
value: V
) -> Result<(), Self::Error> where
V: Serialize,
&mut self,
key: &'static str,
value: V
) -> Result<(), Self::Error> where
V: Serialize,
Serializes an element of a struct.
By default, struct elements are serialized as a map element with the field name as the key.
fn visit_struct_variant<V>(
&mut self,
_name: &'static str,
_variant_index: usize,
variant: &'static str,
visitor: V
) -> Result<(), Self::Error> where
V: MapVisitor,
&mut self,
_name: &'static str,
_variant_index: usize,
variant: &'static str,
visitor: V
) -> Result<(), Self::Error> where
V: MapVisitor,
Serializes a struct variant.
By default, struct variants are serialized as a struct.
fn visit_struct_variant_elt<V>(
&mut self,
key: &'static str,
value: V
) -> Result<(), Self::Error> where
V: Serialize,
&mut self,
key: &'static str,
value: V
) -> Result<(), Self::Error> where
V: Serialize,
Serializes an element of a struct variant.
By default, struct variant elements are serialized as a struct element.
fn format() -> &'static str
Specify a format string for the serializer.
The serializer format is used to determine which format specific field attributes should be used with the serializer.