Skip to main content

FieldEncoder

Trait FieldEncoder 

Source
pub trait FieldEncoder<E, T: ?Sized>: ValueEncoder<E, T> {
    // Required methods
    fn encode_field<B: BufMut + ?Sized>(
        tag: u32,
        value: &T,
        buf: &mut B,
        tw: &mut TagWriter,
    );
    fn prepend_field<B: ReverseBuf + ?Sized>(
        tag: u32,
        value: &T,
        buf: &mut B,
        tw: &mut TagRevWriter,
    );
    fn field_encoded_len(
        tag: u32,
        value: &T,
        tm: &mut impl TagMeasurer,
    ) -> usize;
}
Expand description

Affiliated helper trait for ValueEncoder that provides obligate implementations for handling field keys and wire types.

Required Methods§

Source

fn encode_field<B: BufMut + ?Sized>( tag: u32, value: &T, buf: &mut B, tw: &mut TagWriter, )

Encodes exactly one field with the given tag and value into the buffer.

Source

fn prepend_field<B: ReverseBuf + ?Sized>( tag: u32, value: &T, buf: &mut B, tw: &mut TagRevWriter, )

Prepends exactly one field with the given tag and value into the buffer.

Source

fn field_encoded_len(tag: u32, value: &T, tm: &mut impl TagMeasurer) -> usize

Returns the encoded length of the field including its key.

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.

Implementations on Foreign Types§

Source§

impl<E, T: ?Sized> FieldEncoder<E, T> for ()
where (): ValueEncoder<E, T>,

Source§

fn encode_field<B: BufMut + ?Sized>( tag: u32, value: &T, buf: &mut B, tw: &mut TagWriter, )

Source§

fn prepend_field<B: ReverseBuf + ?Sized>( tag: u32, value: &T, buf: &mut B, tw: &mut TagRevWriter, )

Source§

fn field_encoded_len(tag: u32, value: &T, tm: &mut impl TagMeasurer) -> usize

Implementors§