Struct etherparse::Ipv6ExtensionsSlice
source · [−]pub struct Ipv6ExtensionsSlice<'a> { /* private fields */ }Expand description
Slice containing the IPv6 extension headers present after the ip header.
Currently supported:
- Authentication Header
- Hop by Hop Options Header
- Destination Options Header (before and after routing headers)
- Routing Header
- Fragment
- Authentication Header
Currently not supported:
- Encapsulating Security Payload Header (ESP)
- Host Identity Protocol (HIP)
- IP Mobility
- Site Multihoming by IPv6 Intermediation (SHIM6)
Implementations
sourceimpl<'a> Ipv6ExtensionsSlice<'a>
impl<'a> Ipv6ExtensionsSlice<'a>
sourcepub fn from_slice(
start_ip_number: u8,
start_slice: &'a [u8]
) -> Result<(Ipv6ExtensionsSlice<'_>, u8, &'a [u8]), ReadError>
pub fn from_slice(
start_ip_number: u8,
start_slice: &'a [u8]
) -> Result<(Ipv6ExtensionsSlice<'_>, u8, &'a [u8]), ReadError>
Collects all ipv6 extension headers in a slice & checks if a fragmentation header that fragments the packet is present.
sourcepub fn is_fragmenting_payload(&self) -> bool
pub fn is_fragmenting_payload(&self) -> bool
Returns true if a fragmentation header is present in the extensions that fragments the payload.
Note: A fragmentation header can still be present even if the return value is false in case the fragmentation headers don’t fragment the payload. This is the case if the offset of all fragmentation header is 0 and the more fragment bit is not set.
sourcepub fn first_header(&self) -> Option<u8>
pub fn first_header(&self) -> Option<u8>
Returns the ip protocol number of the first header in the slice if the slice contains an ipv6 extension header. If no ipv6 header is present None is returned.
None is only returned if the slice length of this struct is 0.
Trait Implementations
sourceimpl<'a> Clone for Ipv6ExtensionsSlice<'a>
impl<'a> Clone for Ipv6ExtensionsSlice<'a>
sourcefn clone(&self) -> Ipv6ExtensionsSlice<'a>
fn clone(&self) -> Ipv6ExtensionsSlice<'a>
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more
sourceimpl<'a> Debug for Ipv6ExtensionsSlice<'a>
impl<'a> Debug for Ipv6ExtensionsSlice<'a>
sourceimpl<'a> Default for Ipv6ExtensionsSlice<'a>
impl<'a> Default for Ipv6ExtensionsSlice<'a>
sourcefn default() -> Ipv6ExtensionsSlice<'a>
fn default() -> Ipv6ExtensionsSlice<'a>
Returns the “default value” for a type. Read more
sourceimpl<'a> IntoIterator for Ipv6ExtensionsSlice<'a>
impl<'a> IntoIterator for Ipv6ExtensionsSlice<'a>
type Item = Ipv6ExtensionSlice<'a>
type Item = Ipv6ExtensionSlice<'a>
The type of the elements being iterated over.
type IntoIter = Ipv6ExtensionSliceIter<'a>
type IntoIter = Ipv6ExtensionSliceIter<'a>
Which kind of iterator are we turning this into?
sourceimpl<'a> PartialEq<Ipv6ExtensionsSlice<'a>> for Ipv6ExtensionsSlice<'a>
impl<'a> PartialEq<Ipv6ExtensionsSlice<'a>> for Ipv6ExtensionsSlice<'a>
sourcefn eq(&self, other: &Ipv6ExtensionsSlice<'a>) -> bool
fn eq(&self, other: &Ipv6ExtensionsSlice<'a>) -> bool
This method tests for self and other values to be equal, and is used
by ==. Read more
sourcefn ne(&self, other: &Ipv6ExtensionsSlice<'a>) -> bool
fn ne(&self, other: &Ipv6ExtensionsSlice<'a>) -> bool
This method tests for !=.
impl<'a> Eq for Ipv6ExtensionsSlice<'a>
impl<'a> StructuralEq for Ipv6ExtensionsSlice<'a>
impl<'a> StructuralPartialEq for Ipv6ExtensionsSlice<'a>
Auto Trait Implementations
impl<'a> RefUnwindSafe for Ipv6ExtensionsSlice<'a>
impl<'a> Send for Ipv6ExtensionsSlice<'a>
impl<'a> Sync for Ipv6ExtensionsSlice<'a>
impl<'a> Unpin for Ipv6ExtensionsSlice<'a>
impl<'a> UnwindSafe for Ipv6ExtensionsSlice<'a>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more