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

Serializes a Some(...) value.

fn visit_seq<V>(&mut self, visitor: V) -> Result<(), Self::Error> where 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

Serializes a sequence element.

fn visit_map<V>(&mut self, visitor: V) -> Result<(), Self::Error> where 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

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>

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

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

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

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

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

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

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

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

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

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

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

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

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.

Implementors