packet_formats::igmp::messages

Struct IgmpMembershipReportV3Builder

Source
pub struct IgmpMembershipReportV3Builder<I> { /* private fields */ }
Expand description

A builder for IGMPv3 membership reports.

This differs from IgmpPacketBuilder in that it implements [InnerPacketBuilder\ directly, and provides a more ergonomic way of building reports than nesting builders.

Implementations§

Source§

impl<I> IgmpMembershipReportV3Builder<I>

Source

pub fn new(groups: I) -> Self

Source§

impl<I> IgmpMembershipReportV3Builder<I>

Source

pub fn with_len_limits( self, max_len: usize, ) -> Result<impl Iterator<Item = IgmpMembershipReportV3Builder<impl Iterator<Item: GmpReportGroupRecord<Ipv4Addr>> + Clone>>, InvalidConstraintsError>

Transform this builder into an iterator of builders with a given max_len for each generated packet.

max_len is the maximum length each builder yielded by the returned iterator can have. The groups used to create this builder are split into multiple reports in order to meet this length. Note that this length does not account for the IP header, but it accounts for the entire IGMP packet.

Returns Err if max_len is not large enough to meet minimal constraints for each report.

Trait Implementations§

Source§

impl<I: Debug> Debug for IgmpMembershipReportV3Builder<I>

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<I> InnerPacketBuilder for IgmpMembershipReportV3Builder<I>

Source§

fn bytes_len(&self) -> usize

The number of bytes consumed by this packet.
Source§

fn serialize(&self, buf: &mut [u8])

Serializes this packet into an existing buffer. Read more
§

fn into_serializer(self) -> InnerSerializer<Self, EmptyBuf>
where Self: Sized,

Converts this InnerPacketBuilder into a [Serializer]. Read more
§

fn into_serializer_with<B>(self, buffer: B) -> InnerSerializer<Self, B>
where B: ShrinkBuffer, Self: Sized,

Converts this InnerPacketBuilder into a [Serializer] with a buffer that can be used for serialization. Read more

Auto Trait Implementations§

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> 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, 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.