Enum etherparse::IpSlice

source ·
pub enum IpSlice<'a> {
    Ipv4(Ipv4Slice<'a>),
    Ipv6(Ipv6Slice<'a>),
}
Expand description

Slice containing the IP header (v4 or v6), extension headers & payload.

Variants§

§

Ipv4(Ipv4Slice<'a>)

The ipv4 header & the decoded extension headers.

§

Ipv6(Ipv6Slice<'a>)

The ipv6 header & the decoded extension headers.

Implementations§

source§

impl<'a> IpSlice<'a>

source

pub fn ipv4(&self) -> Option<&Ipv4Slice<'_>>

Returns a reference to the Ipv4Slice if self is a IpSlice::Ipv4.

source

pub fn ipv6(&self) -> Option<&Ipv6Slice<'_>>

Returns a reference to the Ipv6Slice if self is a IpSlice::Ipv6.

source

pub fn is_fragmenting_payload(&self) -> bool

Returns true if the payload is fragmented.

source

pub fn source_addr(&self) -> IpAddr

Available on crate feature std only.

Return the source address as an std::net::Ipvddr (requires crate feature std).

source

pub fn destination_addr(&self) -> IpAddr

Available on crate feature std only.

Return the destination address as an std::net::IpAddr (requires crate feature std).

source

pub fn payload(&self) -> &IpPayloadSlice<'a>

Returns a slice containing the data after the IP header and IP extensions headers.

source

pub fn payload_ip_number(&self) -> IpNumber

Returns the ip number the type of payload of the IP packet.

This function returns the ip number stored in the last IP header or extension header.

source

pub fn from_slice(slice: &[u8]) -> Result<IpSlice<'_>, SliceError>

Separates and validates IP headers (including extension headers) in the given slice and determine the sub-slice containing the payload of the IP packet.

Trait Implementations§

source§

impl<'a> Clone for IpSlice<'a>

source§

fn clone(&self) -> IpSlice<'a>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<'a> Debug for IpSlice<'a>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'a> From<IpSlice<'a>> for NetSlice<'a>

source§

fn from(value: IpSlice<'a>) -> NetSlice<'a>

Converts to this type from the input type.
source§

impl<'a> From<Ipv4Slice<'a>> for IpSlice<'a>

source§

fn from(value: Ipv4Slice<'a>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<Ipv6Slice<'a>> for IpSlice<'a>

source§

fn from(value: Ipv6Slice<'a>) -> Self

Converts to this type from the input type.
source§

impl<'a> PartialEq for IpSlice<'a>

source§

fn eq(&self, other: &IpSlice<'a>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a> Eq for IpSlice<'a>

source§

impl<'a> StructuralPartialEq for IpSlice<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for IpSlice<'a>

§

impl<'a> RefUnwindSafe for IpSlice<'a>

§

impl<'a> Send for IpSlice<'a>

§

impl<'a> Sync for IpSlice<'a>

§

impl<'a> Unpin for IpSlice<'a>

§

impl<'a> UnwindSafe for IpSlice<'a>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.