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 AlignedOptionBuilder
s 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>
impl<R, I> AlignedRecordSequenceBuilder<R, I>
Sourcepub fn new(start_pos: usize, records: I) -> Self
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>
impl<R, I> AlignedRecordSequenceBuilder<R, I>
Sourcepub fn serialized_len(&self) -> usize
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.
Sourcepub fn serialize_into(&self, buffer: &mut [u8])
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>
impl<R: Clone, I: Clone> Clone for AlignedRecordSequenceBuilder<R, I>
Source§fn clone(&self) -> AlignedRecordSequenceBuilder<R, I>
fn clone(&self) -> AlignedRecordSequenceBuilder<R, I>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more