packet::records

Struct AlignedRecordSequenceBuilder

Source
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>

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

Auto Trait Implementations§

§

impl<R, I> Freeze for AlignedRecordSequenceBuilder<R, I>
where I: Freeze,

§

impl<R, I> RefUnwindSafe for AlignedRecordSequenceBuilder<R, I>

§

impl<R, I> Send for AlignedRecordSequenceBuilder<R, I>
where I: Send, R: Send,

§

impl<R, I> Sync for AlignedRecordSequenceBuilder<R, I>
where I: Sync, R: Sync,

§

impl<R, I> Unpin for AlignedRecordSequenceBuilder<R, I>
where I: Unpin, R: Unpin,

§

impl<R, I> UnwindSafe for AlignedRecordSequenceBuilder<R, I>
where I: UnwindSafe, R: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.