#[non_exhaustive]
pub enum HardwareAddress { Ethernet([u8; 6]), Ieee802154([u8; 8]), Ip, }
Expand description

Representation of an hardware address, such as an Ethernet address or an IEEE802.15.4 address.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Ethernet([u8; 6])

Ethernet medium, with a A six-octet Ethernet address.

Devices of this type send and receive Ethernet frames, and interfaces using it must do neighbor discovery via ARP or NDISC.

Examples of devices of this type are Ethernet, WiFi (802.11), Linux tap, and VPNs in tap (layer 2) mode.

§

Ieee802154([u8; 8])

6LoWPAN over IEEE802.15.4, with an eight-octet address.

§

Ip

Indicates that a Driver is IP-native, and has no hardware address.

Devices of this type send and receive IP frames, without an Ethernet header. MAC addresses are not used, and no neighbor discovery (ARP, NDISC) is done.

Examples of devices of this type are the Linux tun, PPP interfaces, VPNs in tun (layer 3) mode.

Trait Implementations§

source§

impl Clone for HardwareAddress

source§

fn clone(&self) -> HardwareAddress

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 HardwareAddress

source§

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

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

impl Format for HardwareAddress

source§

fn format(&self, f: Formatter<'_>)

Writes the defmt representation of self to fmt.
source§

impl PartialEq for HardwareAddress

source§

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

source§

impl Eq for HardwareAddress

source§

impl StructuralEq for HardwareAddress

source§

impl StructuralPartialEq for HardwareAddress

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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, U> TryFrom<U> for Twhere 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 Twhere 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.