Trait SerializeMap

Source
pub trait SerializeMap {
    type Ok;
    type Error: Error;

    // Required methods
    fn serialize_key<T>(&mut self, key: &T) -> Result<(), Self::Error>
       where T: Serialize + ?Sized;
    fn serialize_value<T>(&mut self, value: &T) -> Result<(), Self::Error>
       where T: Serialize + ?Sized;
    fn end(self) -> Result<Self::Ok, Self::Error>;

    // Provided method
    fn serialize_entry<K, V>(
        &mut self,
        key: &K,
        value: &V,
    ) -> Result<(), Self::Error>
       where K: Serialize + ?Sized,
             V: Serialize + ?Sized { ... }
}
Expand description

Returned from Serializer::serialize_map.

let mut map = serializer.serialize_map(Some(self.len()))?;
for (k, v) in self {
    map.serialize_entry(k, v)?;
}
map.end()

Required Associated Types§

Source

type Ok

Must match the Ok type of our Serializer.

Source

type Error: Error

Must match the Error type of our Serializer.

Required Methods§

Source

fn serialize_key<T>(&mut self, key: &T) -> Result<(), Self::Error>
where T: Serialize + ?Sized,

Serialize a map key.

Source

fn serialize_value<T>(&mut self, value: &T) -> Result<(), Self::Error>
where T: Serialize + ?Sized,

Serialize a map value.

Source

fn end(self) -> Result<Self::Ok, Self::Error>

Finish serializing a map.

Provided Methods§

Source

fn serialize_entry<K, V>( &mut self, key: &K, value: &V, ) -> Result<(), Self::Error>
where K: Serialize + ?Sized, V: Serialize + ?Sized,

Serialize a map entry consisting of a key and a value.

Some Serialize types are not able to hold a key and value in memory at the same time so SerializeMap implementations are required to support serialize_key and serialize_value individually. The serialize_entry method allows serializers to optimize for the case where key and value are both available. Serialize implementations are encouraged to use serialize_entry if possible.

The default implementation delegates to serialize_key and serialize_value. This is appropriate for serializers that do not care about performance or are not able to optimize serialize_entry any better than this.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<Ok, E> SerializeMap for Impossible<Ok, E>
where E: Error,

Source§

type Ok = Ok

Source§

type Error = E