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>
impl<I> IgmpMembershipReportV3Builder<I>
Sourcepub fn new(groups: I) -> Self
pub fn new(groups: I) -> Self
Creates a new IgmpMembershipReportV3Builder.
Source§impl<I> IgmpMembershipReportV3Builder<I>
impl<I> IgmpMembershipReportV3Builder<I>
Sourcepub fn with_len_limits(
self,
max_len: usize,
) -> Result<impl Iterator<Item = IgmpMembershipReportV3Builder<impl Iterator<Item: GmpReportGroupRecord<Ipv4Addr>> + Clone>>, InvalidConstraintsError>
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>
impl<I: Debug> Debug for IgmpMembershipReportV3Builder<I>
Source§impl<I> InnerPacketBuilder for IgmpMembershipReportV3Builder<I>
impl<I> InnerPacketBuilder for IgmpMembershipReportV3Builder<I>
Source§fn into_serializer(self) -> InnerSerializer<Self, EmptyBuf>where
Self: Sized,
fn into_serializer(self) -> InnerSerializer<Self, EmptyBuf>where
Self: Sized,
Source§fn into_serializer_with<B>(self, buffer: B) -> InnerSerializer<Self, B>where
B: ShrinkBuffer,
Self: Sized,
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 moreAuto Trait Implementations§
impl<I> Freeze for IgmpMembershipReportV3Builder<I>where
I: Freeze,
impl<I> RefUnwindSafe for IgmpMembershipReportV3Builder<I>where
I: RefUnwindSafe,
impl<I> Send for IgmpMembershipReportV3Builder<I>where
I: Send,
impl<I> Sync for IgmpMembershipReportV3Builder<I>where
I: Sync,
impl<I> Unpin for IgmpMembershipReportV3Builder<I>where
I: Unpin,
impl<I> UnwindSafe for IgmpMembershipReportV3Builder<I>where
I: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more