pub struct TimeExceededPayloadSlice<'a> { /* private fields */ }Expand description
Borrowed payload of a Time Exceeded message (RFC 4443, Section 3.3).
The full packet layout is:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Unused |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| As much of invoking packet |
+ as possible without the ICMPv6 packet +
| exceeding the minimum IPv6 MTU [IPv6] |In this crate, Type, Code, and Unused are represented by
crate::Icmpv6Type::TimeExceeded. This slice represents the invoking
packet bytes after that fixed part.
Implementations§
Source§impl<'a> TimeExceededPayloadSlice<'a>
impl<'a> TimeExceededPayloadSlice<'a>
Sourcepub fn from_slice(slice: &'a [u8]) -> Result<Self, LenError>
pub fn from_slice(slice: &'a [u8]) -> Result<Self, LenError>
Creates a payload slice from the bytes after the ICMPv6 header.
Sourcepub fn invoking_packet(&self) -> &'a [u8] ⓘ
pub fn invoking_packet(&self) -> &'a [u8] ⓘ
Returns the invoking packet bytes carried by the message.
Sourcepub fn as_lax_ip_slice(
&self,
) -> Result<(LaxIpSlice<'a>, Option<(HeaderSliceError, Layer)>), LaxHeaderSliceError>
pub fn as_lax_ip_slice( &self, ) -> Result<(LaxIpSlice<'a>, Option<(HeaderSliceError, Layer)>), LaxHeaderSliceError>
Decodes the invoking packet bytes as a lax IP slice.
Trait Implementations§
Source§impl<'a> Clone for TimeExceededPayloadSlice<'a>
impl<'a> Clone for TimeExceededPayloadSlice<'a>
Source§fn clone(&self) -> TimeExceededPayloadSlice<'a>
fn clone(&self) -> TimeExceededPayloadSlice<'a>
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<'a> Debug for TimeExceededPayloadSlice<'a>
impl<'a> Debug for TimeExceededPayloadSlice<'a>
impl<'a> Eq for TimeExceededPayloadSlice<'a>
Source§impl<'a> PartialEq for TimeExceededPayloadSlice<'a>
impl<'a> PartialEq for TimeExceededPayloadSlice<'a>
impl<'a> StructuralPartialEq for TimeExceededPayloadSlice<'a>
Auto Trait Implementations§
impl<'a> Freeze for TimeExceededPayloadSlice<'a>
impl<'a> RefUnwindSafe for TimeExceededPayloadSlice<'a>
impl<'a> Send for TimeExceededPayloadSlice<'a>
impl<'a> Sync for TimeExceededPayloadSlice<'a>
impl<'a> Unpin for TimeExceededPayloadSlice<'a>
impl<'a> UnsafeUnpin for TimeExceededPayloadSlice<'a>
impl<'a> UnwindSafe for TimeExceededPayloadSlice<'a>
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