Trait serde::ser::Serializer
[−]
[src]
pub trait Serializer { type Error: Error; type SeqState; type TupleState; type TupleStructState; type TupleVariantState; type MapState; type StructState; type StructVariantState; fn serialize_bool(&mut self, v: bool) -> Result<(), Self::Error>; fn serialize_isize(&mut self, v: isize) -> Result<(), Self::Error>; fn serialize_i8(&mut self, v: i8) -> Result<(), Self::Error>; fn serialize_i16(&mut self, v: i16) -> Result<(), Self::Error>; fn serialize_i32(&mut self, v: i32) -> Result<(), Self::Error>; fn serialize_i64(&mut self, v: i64) -> Result<(), Self::Error>; fn serialize_usize(&mut self, v: usize) -> Result<(), Self::Error>; fn serialize_u8(&mut self, v: u8) -> Result<(), Self::Error>; fn serialize_u16(&mut self, v: u16) -> Result<(), Self::Error>; fn serialize_u32(&mut self, v: u32) -> Result<(), Self::Error>; fn serialize_u64(&mut self, v: u64) -> Result<(), Self::Error>; fn serialize_f32(&mut self, v: f32) -> Result<(), Self::Error>; fn serialize_f64(&mut self, v: f64) -> Result<(), Self::Error>; fn serialize_char(&mut self, v: char) -> Result<(), Self::Error>; fn serialize_str(&mut self, value: &str) -> Result<(), Self::Error>; fn serialize_bytes(&mut self, value: &[u8]) -> Result<(), Self::Error>; fn serialize_unit(&mut self) -> Result<(), Self::Error>; fn serialize_unit_struct(&mut self, name: &'static str) -> Result<(), Self::Error>; fn serialize_unit_variant(&mut self, name: &'static str, variant_index: usize, variant: &'static str) -> Result<(), Self::Error>; fn serialize_newtype_struct<T: Serialize>(&mut self, name: &'static str, value: T) -> Result<(), Self::Error>; fn serialize_newtype_variant<T: Serialize>(&mut self, name: &'static str, variant_index: usize, variant: &'static str, value: T) -> Result<(), Self::Error>; fn serialize_none(&mut self) -> Result<(), Self::Error>; fn serialize_some<T: Serialize>(&mut self, value: T) -> Result<(), Self::Error>; fn serialize_seq(&mut self, len: Option<usize>) -> Result<Self::SeqState, Self::Error>; fn serialize_seq_elt<T: Serialize>(&mut self, state: &mut Self::SeqState, value: T) -> Result<(), Self::Error>; fn serialize_seq_end(&mut self, state: Self::SeqState) -> Result<(), Self::Error>; fn serialize_seq_fixed_size(&mut self, size: usize) -> Result<Self::SeqState, Self::Error>; fn serialize_tuple(&mut self, len: usize) -> Result<Self::TupleState, Self::Error>; fn serialize_tuple_elt<T: Serialize>(&mut self, state: &mut Self::TupleState, value: T) -> Result<(), Self::Error>; fn serialize_tuple_end(&mut self, state: Self::TupleState) -> Result<(), Self::Error>; fn serialize_tuple_struct(&mut self, name: &'static str, len: usize) -> Result<Self::TupleStructState, Self::Error>; fn serialize_tuple_struct_elt<T: Serialize>(&mut self, state: &mut Self::TupleStructState, value: T) -> Result<(), Self::Error>; fn serialize_tuple_struct_end(&mut self, state: Self::TupleStructState) -> Result<(), Self::Error>; fn serialize_tuple_variant(&mut self, name: &'static str, variant_index: usize, variant: &'static str, len: usize) -> Result<Self::TupleVariantState, Self::Error>; fn serialize_tuple_variant_elt<T: Serialize>(&mut self, state: &mut Self::TupleVariantState, value: T) -> Result<(), Self::Error>; fn serialize_tuple_variant_end(&mut self, state: Self::TupleVariantState) -> Result<(), Self::Error>; fn serialize_map(&mut self, len: Option<usize>) -> Result<Self::MapState, Self::Error>; fn serialize_map_elt<K: Serialize, V: Serialize>(&mut self, state: &mut Self::MapState, key: K, value: V) -> Result<(), Self::Error>; fn serialize_map_end(&mut self, state: Self::MapState) -> Result<(), Self::Error>; fn serialize_struct(&mut self, name: &'static str, len: usize) -> Result<Self::StructState, Self::Error>; fn serialize_struct_elt<V: Serialize>(&mut self, state: &mut Self::StructState, key: &'static str, value: V) -> Result<(), Self::Error>; fn serialize_struct_end(&mut self, state: Self::StructState) -> Result<(), Self::Error>; fn serialize_struct_variant(&mut self, name: &'static str, variant_index: usize, variant: &'static str, len: usize) -> Result<Self::StructVariantState, Self::Error>; fn serialize_struct_variant_elt<V: Serialize>(&mut self, state: &mut Self::StructVariantState, key: &'static str, value: V) -> Result<(), Self::Error>; fn serialize_struct_variant_end(&mut self, state: Self::StructVariantState) -> Result<(), Self::Error>; }
A trait that describes a type that can serialize a stream of values into the underlying format.
Associated Types
type Error: Error
The error type that can be returned if some error occurs during serialization.
type SeqState
A state object that is initialized by serialize_seq
, passed to
serialize_seq_elt
, and consumed by serialize_seq_end
. Use ()
if no
state is required.
type TupleState
A state object that is initialized by serialize_tuple
, passed to
serialize_tuple_elt
, and consumed by serialize_tuple_end
. Use ()
if no state is required.
type TupleStructState
A state object that is initialized by serialize_tuple_struct
, passed
to serialize_tuple_struct_elt
, and consumed by
serialize_tuple_struct_end
. Use ()
if no state is required.
type TupleVariantState
A state object that is initialized by serialize_tuple_variant
, passed
to serialize_tuple_variant_elt
, and consumed by
serialize_tuple_variant_end
. Use ()
if no state is required.
type MapState
A state object that is initialized by serialize_map
, passed to
serialize_map_elt
, and consumed by serialize_map_end
. Use ()
if no
state is required.
type StructState
A state object that is initialized by serialize_struct
, passed to
serialize_struct_elt
, and consumed by serialize_struct_end
. Use ()
if no state is required.
type StructVariantState
A state object that is initialized by serialize_struct_variant
, passed
to serialize_struct_variant_elt
, and consumed by
serialize_struct_variant_end
. Use ()
if no state is required.
Required Methods
fn serialize_bool(&mut self, v: bool) -> Result<(), Self::Error>
Serializes a bool
value.
fn serialize_isize(&mut self, v: isize) -> Result<(), Self::Error>
Serializes an isize
value. If the format does not differentiate
between isize
and i64
, a reasonable implementation would be to cast
the value to i64
and forward to serialize_i64
.
fn serialize_i8(&mut self, v: i8) -> Result<(), Self::Error>
Serializes an i8
value. If the format does not differentiate between
i8
and i64
, a reasonable implementation would be to cast the value
to i64
and forward to serialize_i64
.
fn serialize_i16(&mut self, v: i16) -> Result<(), Self::Error>
Serializes an i16
value. If the format does not differentiate between
i16
and i64
, a reasonable implementation would be to cast the value
to i64
and forward to serialize_i64
.
fn serialize_i32(&mut self, v: i32) -> Result<(), Self::Error>
Serializes an i32
value. If the format does not differentiate between
i32
and i64
, a reasonable implementation would be to cast the value
to i64
and forward to serialize_i64
.
fn serialize_i64(&mut self, v: i64) -> Result<(), Self::Error>
Serializes an i64
value.
fn serialize_usize(&mut self, v: usize) -> Result<(), Self::Error>
Serializes a usize
value. If the format does not differentiate between
usize
and u64
, a reasonable implementation would be to cast the
value to u64
and forward to serialize_u64
.
fn serialize_u8(&mut self, v: u8) -> Result<(), Self::Error>
Serializes a u8
value. If the format does not differentiate between
u8
and u64
, a reasonable implementation would be to cast the value
to u64
and forward to serialize_u64
.
fn serialize_u16(&mut self, v: u16) -> Result<(), Self::Error>
Serializes a u16
value. If the format does not differentiate between
u16
and u64
, a reasonable implementation would be to cast the value
to u64
and forward to serialize_u64
.
fn serialize_u32(&mut self, v: u32) -> Result<(), Self::Error>
Serializes a u32
value. If the format does not differentiate between
u32
and u64
, a reasonable implementation would be to cast the value
to u64
and forward to serialize_u64
.
fn serialize_u64(&mut self, v: u64) -> Result<(), Self::Error>
Serializes a
u64` value.
fn serialize_f32(&mut self, v: f32) -> Result<(), Self::Error>
Serializes an f32
value. If the format does not differentiate between
f32
and f64
, a reasonable implementation would be to cast the value
to f64
and forward to serialize_f64
.
fn serialize_f64(&mut self, v: f64) -> Result<(), Self::Error>
Serializes an f64
value.
fn serialize_char(&mut self, v: char) -> Result<(), Self::Error>
Serializes a character.
fn serialize_str(&mut self, value: &str) -> Result<(), Self::Error>
Serializes a &str
.
fn serialize_bytes(&mut self, value: &[u8]) -> Result<(), Self::Error>
Enables serializers to serialize byte slices more compactly or more
efficiently than other types of slices. If no efficient implementation
is available, a reasonable implementation would be to forward to
serialize_seq
.
fn serialize_unit(&mut self) -> Result<(), Self::Error>
Serializes a ()
value.
fn serialize_unit_struct(&mut self, name: &'static str) -> Result<(), Self::Error>
Serializes a unit struct value. A reasonable implementation would be to
forward to serialize_unit
.
fn serialize_unit_variant(&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. A reasonable implementation would be to forward to
serialize_unit
.
fn serialize_newtype_struct<T: Serialize>(&mut self, name: &'static str, value: T) -> Result<(), Self::Error>
Allows a tuple struct with a single element, also known as a newtype
struct, to be more efficiently serialized than a tuple struct with
multiple items. A reasonable implementation would be to forward to
serialize_tuple_struct
.
fn serialize_newtype_variant<T: Serialize>(&mut self, name: &'static str, variant_index: usize, variant: &'static str, value: T) -> Result<(), Self::Error>
Allows a variant with a single item to be more efficiently serialized
than a variant with multiple items. A reasonable implementation would be
to forward to serialize_tuple_variant
.
fn serialize_none(&mut self) -> Result<(), Self::Error>
Serializes a None
value.
fn serialize_some<T: Serialize>(&mut self, value: T) -> Result<(), Self::Error>
Serializes a Some(...)
value.
fn serialize_seq(&mut self, len: Option<usize>) -> Result<Self::SeqState, Self::Error>
Begins to serialize a sequence. This call must be followed by zero or
more calls to serialize_seq_elt
, then a call to serialize_seq_end
.
fn serialize_seq_elt<T: Serialize>(&mut self, state: &mut Self::SeqState, value: T) -> Result<(), Self::Error>
Serializes a sequence element. Must have previously called
serialize_seq
.
fn serialize_seq_end(&mut self, state: Self::SeqState) -> Result<(), Self::Error>
Finishes serializing a sequence.
fn serialize_seq_fixed_size(&mut self, size: usize) -> Result<Self::SeqState, Self::Error>
Begins to serialize a sequence whose length will be known at
deserialization time. This call must be followed by zero or more calls
to serialize_seq_elt
, then a call to serialize_seq_end
. A reasonable
implementation would be to forward to serialize_seq
.
fn serialize_tuple(&mut self, len: usize) -> Result<Self::TupleState, Self::Error>
Begins to serialize a tuple. This call must be followed by zero or more
calls to serialize_tuple_elt
, then a call to serialize_tuple_end
. A
reasonable implementation would be to forward to serialize_seq
.
fn serialize_tuple_elt<T: Serialize>(&mut self, state: &mut Self::TupleState, value: T) -> Result<(), Self::Error>
Serializes a tuple element. Must have previously called
serialize_tuple
.
fn serialize_tuple_end(&mut self, state: Self::TupleState) -> Result<(), Self::Error>
Finishes serializing a tuple.
fn serialize_tuple_struct(&mut self, name: &'static str, len: usize) -> Result<Self::TupleStructState, Self::Error>
Begins to serialize a tuple struct. This call must be followed by zero
or more calls to serialize_tuple_struct_elt
, then a call to
serialize_tuple_struct_end
. A reasonable implementation would be to
forward to serialize_tuple
.
fn serialize_tuple_struct_elt<T: Serialize>(&mut self, state: &mut Self::TupleStructState, value: T) -> Result<(), Self::Error>
Serializes a tuple struct element. Must have previously called
serialize_tuple_struct
.
fn serialize_tuple_struct_end(&mut self, state: Self::TupleStructState) -> Result<(), Self::Error>
Finishes serializing a tuple struct.
fn serialize_tuple_variant(&mut self, name: &'static str, variant_index: usize, variant: &'static str, len: usize) -> Result<Self::TupleVariantState, Self::Error>
Begins to serialize a tuple variant. This call must be followed by zero
or more calls to serialize_tuple_variant_elt
, then a call to
serialize_tuple_variant_end
. A reasonable implementation would be to
forward to serialize_tuple_struct
.
fn serialize_tuple_variant_elt<T: Serialize>(&mut self, state: &mut Self::TupleVariantState, value: T) -> Result<(), Self::Error>
Serializes a tuple variant element. Must have previously called
serialize_tuple_variant
.
fn serialize_tuple_variant_end(&mut self, state: Self::TupleVariantState) -> Result<(), Self::Error>
Finishes serializing a tuple variant.
fn serialize_map(&mut self, len: Option<usize>) -> Result<Self::MapState, Self::Error>
Begins to serialize a map. This call must be followed by zero or more
calls to serialize_map_elt
, then a call to serialize_map_end
.
fn serialize_map_elt<K: Serialize, V: Serialize>(&mut self, state: &mut Self::MapState, key: K, value: V) -> Result<(), Self::Error>
Serialize a map element. Must have previously called serialize_map
.
fn serialize_map_end(&mut self, state: Self::MapState) -> Result<(), Self::Error>
Finishes serializing a map.
fn serialize_struct(&mut self, name: &'static str, len: usize) -> Result<Self::StructState, Self::Error>
Begins to serialize a struct. This call must be followed by zero or more
calls to serialize_struct_elt
, then a call to serialize_struct_end
.
fn serialize_struct_elt<V: Serialize>(&mut self, state: &mut Self::StructState, key: &'static str, value: V) -> Result<(), Self::Error>
Serializes a struct field. Must have previously called
serialize_struct
.
fn serialize_struct_end(&mut self, state: Self::StructState) -> Result<(), Self::Error>
Finishes serializing a struct.
fn serialize_struct_variant(&mut self, name: &'static str, variant_index: usize, variant: &'static str, len: usize) -> Result<Self::StructVariantState, Self::Error>
Begins to serialize a struct variant. This call must be followed by zero
or more calls to serialize_struct_variant_elt
, then a call to
serialize_struct_variant_end
.
fn serialize_struct_variant_elt<V: Serialize>(&mut self, state: &mut Self::StructVariantState, key: &'static str, value: V) -> Result<(), Self::Error>
Serialize a struct variant element. Must have previously called
serialize_struct_variant
.
fn serialize_struct_variant_end(&mut self, state: Self::StructVariantState) -> Result<(), Self::Error>
Finishes serializing a struct variant.