pub enum IgmpPacket<B: SplitByteSlice> {
MembershipQueryV2(IgmpMessage<B, IgmpMembershipQueryV2>),
MembershipQueryV3(IgmpMessage<B, IgmpMembershipQueryV3>),
MembershipReportV1(IgmpMessage<B, IgmpMembershipReportV1>),
MembershipReportV2(IgmpMessage<B, IgmpMembershipReportV2>),
MembershipReportV3(IgmpMessage<B, IgmpMembershipReportV3>),
LeaveGroup(IgmpMessage<B, IgmpLeaveGroup>),
}Expand description
An IGMP packet with a dynamic message type.
Each enum variant contains an IgmpMessage of
the appropriate static type, making it easier to call parse without
knowing the message type ahead of time while still getting the benefits of a
statically-typed packet struct after parsing is complete.
Variants§
MembershipQueryV2(IgmpMessage<B, IgmpMembershipQueryV2>)
MembershipQueryV3(IgmpMessage<B, IgmpMembershipQueryV3>)
MembershipReportV1(IgmpMessage<B, IgmpMembershipReportV1>)
MembershipReportV2(IgmpMessage<B, IgmpMembershipReportV2>)
MembershipReportV3(IgmpMessage<B, IgmpMembershipReportV3>)
LeaveGroup(IgmpMessage<B, IgmpLeaveGroup>)
Trait Implementations§
Source§impl<B: Debug + SplitByteSlice> Debug for IgmpPacket<B>
impl<B: Debug + SplitByteSlice> Debug for IgmpPacket<B>
Source§impl<B: SplitByteSlice> ParsablePacket<B, ()> for IgmpPacket<B>
impl<B: SplitByteSlice> ParsablePacket<B, ()> for IgmpPacket<B>
Source§fn parse_metadata(&self) -> ParseMetadata
fn parse_metadata(&self) -> ParseMetadata
Gets metadata about this packet required by
GrowBuffer::undo_parse. Read moreSource§fn parse<BV: BufferView<B>>(buffer: BV, args: ()) -> Result<Self, ParseError>
fn parse<BV: BufferView<B>>(buffer: BV, args: ()) -> Result<Self, ParseError>
Parses a packet from a buffer. Read more
Source§fn parse_mut<BV>(buffer: BV, args: ParseArgs) -> Result<Self, Self::Error>where
BV: BufferViewMut<B>,
B: SplitByteSliceMut,
fn parse_mut<BV>(buffer: BV, args: ParseArgs) -> Result<Self, Self::Error>where
BV: BufferViewMut<B>,
B: SplitByteSliceMut,
Parses a packet from a mutable buffer. Read more
Auto Trait Implementations§
impl<B> Freeze for IgmpPacket<B>where
IgmpMessage<B, IgmpMembershipQueryV2>: Freeze,
IgmpMessage<B, IgmpMembershipQueryV3>: Freeze,
IgmpMessage<B, IgmpMembershipReportV1>: Freeze,
IgmpMessage<B, IgmpMembershipReportV2>: Freeze,
IgmpMessage<B, IgmpMembershipReportV3>: Freeze,
IgmpMessage<B, IgmpLeaveGroup>: Freeze,
impl<B> RefUnwindSafe for IgmpPacket<B>where
IgmpMessage<B, IgmpMembershipQueryV2>: RefUnwindSafe,
IgmpMessage<B, IgmpMembershipQueryV3>: RefUnwindSafe,
IgmpMessage<B, IgmpMembershipReportV1>: RefUnwindSafe,
IgmpMessage<B, IgmpMembershipReportV2>: RefUnwindSafe,
IgmpMessage<B, IgmpMembershipReportV3>: RefUnwindSafe,
IgmpMessage<B, IgmpLeaveGroup>: RefUnwindSafe,
impl<B> Send for IgmpPacket<B>where
IgmpMessage<B, IgmpMembershipQueryV2>: Send,
IgmpMessage<B, IgmpMembershipQueryV3>: Send,
IgmpMessage<B, IgmpMembershipReportV1>: Send,
IgmpMessage<B, IgmpMembershipReportV2>: Send,
IgmpMessage<B, IgmpMembershipReportV3>: Send,
IgmpMessage<B, IgmpLeaveGroup>: Send,
impl<B> Sync for IgmpPacket<B>where
IgmpMessage<B, IgmpMembershipQueryV2>: Sync,
IgmpMessage<B, IgmpMembershipQueryV3>: Sync,
IgmpMessage<B, IgmpMembershipReportV1>: Sync,
IgmpMessage<B, IgmpMembershipReportV2>: Sync,
IgmpMessage<B, IgmpMembershipReportV3>: Sync,
IgmpMessage<B, IgmpLeaveGroup>: Sync,
impl<B> Unpin for IgmpPacket<B>where
IgmpMessage<B, IgmpMembershipQueryV2>: Unpin,
IgmpMessage<B, IgmpMembershipQueryV3>: Unpin,
IgmpMessage<B, IgmpMembershipReportV1>: Unpin,
IgmpMessage<B, IgmpMembershipReportV2>: Unpin,
IgmpMessage<B, IgmpMembershipReportV3>: Unpin,
IgmpMessage<B, IgmpLeaveGroup>: Unpin,
impl<B> UnsafeUnpin for IgmpPacket<B>where
IgmpMessage<B, IgmpMembershipQueryV2>: UnsafeUnpin,
IgmpMessage<B, IgmpMembershipQueryV3>: UnsafeUnpin,
IgmpMessage<B, IgmpMembershipReportV1>: UnsafeUnpin,
IgmpMessage<B, IgmpMembershipReportV2>: UnsafeUnpin,
IgmpMessage<B, IgmpMembershipReportV3>: UnsafeUnpin,
IgmpMessage<B, IgmpLeaveGroup>: UnsafeUnpin,
impl<B> UnwindSafe for IgmpPacket<B>where
IgmpMessage<B, IgmpMembershipQueryV2>: UnwindSafe,
IgmpMessage<B, IgmpMembershipQueryV3>: UnwindSafe,
IgmpMessage<B, IgmpMembershipReportV1>: UnwindSafe,
IgmpMessage<B, IgmpMembershipReportV2>: UnwindSafe,
IgmpMessage<B, IgmpMembershipReportV3>: UnwindSafe,
IgmpMessage<B, IgmpLeaveGroup>: 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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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