musli_core::en

Trait EntryEncoder

Source
pub trait EntryEncoder {
    type Cx: ?Sized + Context;
    type Ok;
    type EncodeKey<'this>: Encoder<Cx = Self::Cx, Ok = Self::Ok, Error = <Self::Cx as Context>::Error, Mode = <Self::Cx as Context>::Mode>
       where Self: 'this;
    type EncodeValue<'this>: Encoder<Cx = Self::Cx, Ok = Self::Ok, Error = <Self::Cx as Context>::Error, Mode = <Self::Cx as Context>::Mode>
       where Self: 'this;

    // Required methods
    fn encode_key(
        &mut self,
    ) -> Result<Self::EncodeKey<'_>, <Self::Cx as Context>::Error>;
    fn encode_value(
        &mut self,
    ) -> Result<Self::EncodeValue<'_>, <Self::Cx as Context>::Error>;
    fn finish_entry(self) -> Result<Self::Ok, <Self::Cx as Context>::Error>;

    // Provided method
    fn insert_entry<K, V>(
        self,
        key: K,
        value: V,
    ) -> Result<Self::Ok, <Self::Cx as Context>::Error>
       where Self: Sized,
             K: Encode<<Self::Cx as Context>::Mode>,
             V: Encode<<Self::Cx as Context>::Mode> { ... }
}
Expand description

Trait governing how to encode a map entry.

Required Associated Types§

Source

type Cx: ?Sized + Context

Context associated with the encoder.

Source

type Ok

Result type of the encoder.

Source

type EncodeKey<'this>: Encoder<Cx = Self::Cx, Ok = Self::Ok, Error = <Self::Cx as Context>::Error, Mode = <Self::Cx as Context>::Mode> where Self: 'this

The encoder returned when advancing the map encoder to encode the key.

Source

type EncodeValue<'this>: Encoder<Cx = Self::Cx, Ok = Self::Ok, Error = <Self::Cx as Context>::Error, Mode = <Self::Cx as Context>::Mode> where Self: 'this

The encoder returned when advancing the map encoder to encode the value.

Required Methods§

Source

fn encode_key( &mut self, ) -> Result<Self::EncodeKey<'_>, <Self::Cx as Context>::Error>

Return the encoder for the key in the entry.

Source

fn encode_value( &mut self, ) -> Result<Self::EncodeValue<'_>, <Self::Cx as Context>::Error>

Return encoder for value in the entry.

Source

fn finish_entry(self) -> Result<Self::Ok, <Self::Cx as Context>::Error>

Stop encoding this pair.

Provided Methods§

Source

fn insert_entry<K, V>( self, key: K, value: V, ) -> Result<Self::Ok, <Self::Cx as Context>::Error>
where Self: Sized, K: Encode<<Self::Cx as Context>::Mode>, V: Encode<<Self::Cx as Context>::Mode>,

Insert the pair immediately.

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§