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§
Sourcefn encode_field<B: BufMut + ?Sized>(
tag: u32,
value: &T,
buf: &mut B,
tw: &mut TagWriter,
)
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.
Sourcefn prepend_field<B: ReverseBuf + ?Sized>(
tag: u32,
value: &T,
buf: &mut B,
tw: &mut TagRevWriter,
)
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.
Sourcefn field_encoded_len(tag: u32, value: &T, tm: &mut impl TagMeasurer) -> usize
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.