pub struct AlignedRecordSequenceBuilder<R, I> { /* private fields */ }Expand description
A builder capable of serializing a sequence of aligned records.
An AlignedRecordSequenceBuilder is instantiated with an Iterator that
provides AlignedRecordBuilders to be serialized. The item produced by
the iterator can be any type which implements Borrow<R> for R: AlignedRecordBuilder.
AlignedRecordSequenceBuilder implements InnerPacketBuilder.
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