pub trait OptionBuilder {
type Layout: OptionLayout;
// Required methods
fn serialized_len(&self) -> usize;
fn option_kind(&self) -> <Self::Layout as OptionLayout>::KindLenField;
fn serialize_into(&self, data: &mut [u8]);
}Expand description
A builder capable of serializing an option.
Given O: OptionBuilder, an iterator of O can be used with a
OptionSequenceBuilder to serialize a sequence of options.
Required Associated Types§
Sourcetype Layout: OptionLayout
type Layout: OptionLayout
Information about the option’s layout.
Required Methods§
Sourcefn serialized_len(&self) -> usize
fn serialized_len(&self) -> usize
Returns the serialized length, in bytes, of self.
Implementers must return the length, in bytes, of the data*
portion of the option field (not counting the kind and length
bytes). The internal machinery of options serialization takes care
of aligning options to their option_len_multiplier boundaries,
adding padding bytes if necessary.
Sourcefn option_kind(&self) -> <Self::Layout as OptionLayout>::KindLenField
fn option_kind(&self) -> <Self::Layout as OptionLayout>::KindLenField
Returns the wire value for this option kind.
Sourcefn serialize_into(&self, data: &mut [u8])
fn serialize_into(&self, data: &mut [u8])
Serializes self into data.
data will be exactly self.serialized_len() bytes long.
Implementers must write the data portion of self into data
(not the kind or length fields).
§Panics
May panic if data is not exactly self.serialized_len() bytes
long.