pub struct InterfaceAddress {
pub if_addr: IfAddr,
pub flags: AddressFlags,
}Expand description
An address bound to an interface, with its flags. Ordered by reachability preference.
Fields§
§if_addr: IfAddrThe IPv4 or IPv6 address with its netmask and broadcast.
flags: AddressFlagsScope and lifetime flags for the address.
Implementations§
Source§impl InterfaceAddress
impl InterfaceAddress
Sourcepub fn new(if_addr: IfAddr, flags: AddressFlags) -> Self
pub fn new(if_addr: IfAddr, flags: AddressFlags) -> Self
Make an InterfaceAddress from an address and its flags.
Sourcepub fn is_temporary(&self) -> bool
pub fn is_temporary(&self) -> bool
RFC 4941 privacy/temporary IPv6 (rotates)
Sourcepub fn is_dynamic(&self) -> bool
pub fn is_dynamic(&self) -> bool
Auto-configured (DHCP/SLAAC) rather than statically configured
Sourcepub fn is_preferred(&self) -> bool
pub fn is_preferred(&self) -> bool
Address has finished DAD and is not deprecated/tentative/duplicated
Sourcepub fn is_cgnat_or_ds_lite(&self) -> bool
pub fn is_cgnat_or_ds_lite(&self) -> bool
IPv4 address in CGNAT (RFC 6598 100.64.0.0/10) or DS-Lite (RFC 6333 192.0.0.0/24); always false for IPv6
Sourcepub fn is_ipv4_link_local(&self) -> bool
pub fn is_ipv4_link_local(&self) -> bool
IPv4 link-local / APIPA (169.254.0.0/16) — DHCP-failed fallback, transient
and not reachable by peers; always false for IPv6 (link-local IPv6 is
handled by ipv6addr_is_global)
Trait Implementations§
Source§impl Clone for InterfaceAddress
impl Clone for InterfaceAddress
Source§fn clone(&self) -> InterfaceAddress
fn clone(&self) -> InterfaceAddress
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 Debug for InterfaceAddress
impl Debug for InterfaceAddress
Source§impl<'de> Deserialize<'de> for InterfaceAddress
impl<'de> Deserialize<'de> for InterfaceAddress
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for InterfaceAddress
Source§impl Ord for InterfaceAddress
impl Ord for InterfaceAddress
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl PartialEq for InterfaceAddress
impl PartialEq for InterfaceAddress
Source§impl PartialOrd for InterfaceAddress
impl PartialOrd for InterfaceAddress
Source§impl Serialize for InterfaceAddress
impl Serialize for InterfaceAddress
impl StructuralPartialEq for InterfaceAddress
Auto Trait Implementations§
impl Freeze for InterfaceAddress
impl RefUnwindSafe for InterfaceAddress
impl Send for InterfaceAddress
impl Sync for InterfaceAddress
impl Unpin for InterfaceAddress
impl UnsafeUnpin for InterfaceAddress
impl UnwindSafe for InterfaceAddress
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> CmpAssign for Twhere
T: Ord,
impl<T> CmpAssign for Twhere
T: Ord,
Source§fn min_assign(&mut self, other: T)
fn min_assign(&mut self, other: T)
Replace
self with other if other is smaller.Source§fn max_assign(&mut self, other: T)
fn max_assign(&mut self, other: T)
Replace
self with other if other is larger.Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more