Enum smoltcp::wire::IpRepr

source ·
pub enum IpRepr {
    Ipv4(Ipv4Repr),
    Ipv6(Ipv6Repr),
}
Expand description

An IP packet representation.

This enum abstracts the various versions of IP packets. It either contains an IPv4 or IPv6 concrete high-level representation.

Variants§

Implementations§

source§

impl Repr

source

pub fn new( src_addr: Address, dst_addr: Address, next_header: Protocol, payload_len: usize, hop_limit: u8 ) -> Self

Create a new IpRepr, choosing the right IP version for the src/dst addrs.

Panics

Panics if src_addr and dst_addr are different IP version.

source

pub const fn version(&self) -> Version

Return the protocol version.

source

pub const fn src_addr(&self) -> Address

Return the source address.

source

pub const fn dst_addr(&self) -> Address

Return the destination address.

source

pub const fn next_header(&self) -> Protocol

Return the next header (protocol).

source

pub const fn payload_len(&self) -> usize

Return the payload length.

source

pub fn set_payload_len(&mut self, length: usize)

Set the payload length.

source

pub const fn hop_limit(&self) -> u8

Return the TTL value.

source

pub const fn header_len(&self) -> usize

Return the length of a header that will be emitted from this high-level representation.

source

pub fn emit<T: AsRef<[u8]> + AsMut<[u8]>>( &self, buffer: T, _checksum_caps: &ChecksumCapabilities )

Emit this high-level representation into a buffer.

source

pub const fn buffer_len(&self) -> usize

Return the total length of a packet that will be emitted from this high-level representation.

This is the same as repr.buffer_len() + repr.payload_len().

Trait Implementations§

source§

impl Clone for Repr

source§

fn clone(&self) -> Repr

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 Debug for Repr

source§

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

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

impl From<Repr> for Repr

source§

fn from(repr: Ipv4Repr) -> Repr

Converts to this type from the input type.
source§

impl From<Repr> for Repr

source§

fn from(repr: Ipv6Repr) -> Repr

Converts to this type from the input type.
source§

impl PartialEq for Repr

source§

fn eq(&self, other: &Repr) -> 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 Eq for Repr

source§

impl StructuralEq for Repr

source§

impl StructuralPartialEq for Repr

Auto Trait Implementations§

§

impl RefUnwindSafe for Repr

§

impl Send for Repr

§

impl Sync for Repr

§

impl Unpin for Repr

§

impl UnwindSafe for Repr

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.