pub struct IcmpPacketRaw<I: IcmpIpExt, B: SplitByteSlice, M: IcmpMessage<I>> { /* private fields */ }
Expand description
A partially parsed and not yet validated ICMP packet.
An IcmpPacketRaw
provides minimal parsing of an ICMP packet. Namely, it
only requires that the header and message (in ICMPv6, these are both
considered part of the header) are present, and that the header has the
expected message type. The body may be missing (or an unexpected body may be
present). Other than the message type, no header, message, or body field
values will be validated.
IcmpPacket
provides a [FromRaw
] implementation that can be used to
validate an IcmpPacketRaw
.
Implementations§
Source§impl<I: IcmpIpExt, B: SplitByteSlice, M: IcmpMessage<I>> IcmpPacketRaw<I, B, M>
impl<I: IcmpIpExt, B: SplitByteSlice, M: IcmpMessage<I>> IcmpPacketRaw<I, B, M>
Source§impl<I: IcmpIpExt, B: SplitByteSliceMut> IcmpPacketRaw<I, B, IcmpEchoRequest>
impl<I: IcmpIpExt, B: SplitByteSliceMut> IcmpPacketRaw<I, B, IcmpEchoRequest>
Source§impl<I: IcmpIpExt, B: SplitByteSliceMut> IcmpPacketRaw<I, B, IcmpEchoReply>
impl<I: IcmpIpExt, B: SplitByteSliceMut> IcmpPacketRaw<I, B, IcmpEchoReply>
Trait Implementations§
Source§impl<I: Debug + IcmpIpExt, B: Debug + SplitByteSlice, M: Debug + IcmpMessage<I>> Debug for IcmpPacketRaw<I, B, M>
impl<I: Debug + IcmpIpExt, B: Debug + SplitByteSlice, M: Debug + IcmpMessage<I>> Debug for IcmpPacketRaw<I, B, M>
Source§impl<B: SplitByteSlice, I: IcmpIpExt, M: IcmpMessage<I>> FromRaw<IcmpPacketRaw<I, B, M>, IcmpParseArgs<<I as Ip>::Addr>> for IcmpPacket<I, B, M>
impl<B: SplitByteSlice, I: IcmpIpExt, M: IcmpMessage<I>> FromRaw<IcmpPacketRaw<I, B, M>, IcmpParseArgs<<I as Ip>::Addr>> for IcmpPacket<I, B, M>
Source§type Error = ParseError
type Error = ParseError
The type of error that may happen during validation.
Source§fn try_from_raw_with(
raw: IcmpPacketRaw<I, B, M>,
args: IcmpParseArgs<I::Addr>,
) -> ParseResult<Self>
fn try_from_raw_with( raw: IcmpPacketRaw<I, B, M>, args: IcmpParseArgs<I::Addr>, ) -> ParseResult<Self>
Attempts to create
Self
from the raw form in raw
with args
.Source§impl<B: SplitByteSlice, I: IcmpIpExt, M: IcmpMessage<I>> ParsablePacket<B, ()> for IcmpPacketRaw<I, B, M>
impl<B: SplitByteSlice, I: IcmpIpExt, M: IcmpMessage<I>> ParsablePacket<B, ()> for IcmpPacketRaw<I, B, M>
Source§fn parse_metadata(&self) -> ParseMetadata
fn parse_metadata(&self) -> ParseMetadata
Gets metadata about this packet required by [
GrowBuffer::undo_parse
]. Read moreAuto Trait Implementations§
impl<I, B, M> Freeze for IcmpPacketRaw<I, B, M>where
B: Freeze,
impl<I, B, M> RefUnwindSafe for IcmpPacketRaw<I, B, M>
impl<I, B, M> Send for IcmpPacketRaw<I, B, M>
impl<I, B, M> Sync for IcmpPacketRaw<I, B, M>
impl<I, B, M> Unpin for IcmpPacketRaw<I, B, M>
impl<I, B, M> UnwindSafe for IcmpPacketRaw<I, B, M>
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