Type Alias AlignedOptionSequenceBuilder

Source
pub type AlignedOptionSequenceBuilder<R, I> = AlignedRecordSequenceBuilder<R, I>;
Expand description

A builder capable of serializing a sequence of aligned options.

An AlignedOptionSequenceBuilder is instantiated with an Iterator that provides AlignedOptionBuilders to be serialized. The item produced by the iterator can be any type which implements Borrow<O> for O: AlignedOptionBuilder.

AlignedOptionSequenceBuilder implements InnerPacketBuilder.

Aliased Type§

struct AlignedOptionSequenceBuilder<R, I> { /* private fields */ }

Implementations

Source§

impl<R, I> AlignedRecordSequenceBuilder<R, I>

Source

pub fn new(start_pos: usize, records: I) -> Self

Creates a new AlignedRecordSequenceBuilder with given records and start_pos.

records must produce the same sequence of values from every iteration, even if cloned. See RecordSequenceBuilder for more details.

Alignment is calculated relative to the beginning of a virtual space of bytes. If non-zero, start_pos instructs the serializer to consider the buffer passed to serialize_into to start at the byte start_pos within this virtual space, and to calculate alignment and padding accordingly. For example, in the IPv6 Hop-by-Hop extension header, a fixed header of two bytes precedes that extension header’s options, but alignment is calculated relative to the beginning of the extension header, not relative to the beginning of the options. Thus, when constructing an AlignedRecordSequenceBuilder to serialize those options, start_pos would be 2.

Source§

impl<R, I> AlignedRecordSequenceBuilder<R, I>

Source

pub fn serialized_len(&self) -> usize

Returns the total length, in bytes, of the serialized records contained within self.

Note that this length includes all padding required to ensure that all records satisfy their alignment requirements.

Source

pub fn serialize_into(&self, buffer: &mut [u8])

Serializes all the records contained within self into the given buffer.

§Panics

serialize_into expects that buffer has enough bytes to serialize the contained records (as obtained from serialized_len), otherwise it’s considered a violation of the API contract and the call may panic.

Trait Implementations

Source§

impl<R: Clone, I: Clone> Clone for AlignedRecordSequenceBuilder<R, I>

Source§

fn clone(&self) -> AlignedRecordSequenceBuilder<R, I>

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<R: Debug, I: Debug> Debug for AlignedRecordSequenceBuilder<R, I>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more