Enum embedded_nal_async::IpAddr 
source · [−]Expand description
An IP address, either IPv4 or IPv6.
This enum can contain either an Ipv4Addr or an Ipv6Addr, see their
respective documentation for more details.
Examples
use no_std_net::{IpAddr, Ipv4Addr, Ipv6Addr};
let localhost_v4 = IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1));
let localhost_v6 = IpAddr::V6(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1));
assert_eq!("127.0.0.1".parse(), Ok(localhost_v4));
assert_eq!("::1".parse(), Ok(localhost_v6));
assert_eq!(localhost_v4.is_ipv6(), false);
assert_eq!(localhost_v4.is_ipv4(), true);Variants
V4(Ipv4Addr)
An IPv4 address.
V6(Ipv6Addr)
An IPv6 address.
Implementations
sourceimpl IpAddr
 
impl IpAddr
sourcepub const fn is_unspecified(&self) -> bool
 
pub const fn is_unspecified(&self) -> bool
Returns true for the special ‘unspecified’ address.
See the documentation for Ipv4Addr::is_unspecified and
Ipv6Addr::is_unspecified for more details.
Examples
use no_std_net::{IpAddr, Ipv4Addr, Ipv6Addr};
assert_eq!(IpAddr::V4(Ipv4Addr::new(0, 0, 0, 0)).is_unspecified(), true);
assert_eq!(IpAddr::V6(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 0)).is_unspecified(), true);sourcepub const fn is_loopback(&self) -> bool
 
pub const fn is_loopback(&self) -> bool
Returns true if this is a loopback address.
See the documentation for Ipv4Addr::is_loopback and
Ipv6Addr::is_loopback for more details.
Examples
use no_std_net::{IpAddr, Ipv4Addr, Ipv6Addr};
assert_eq!(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)).is_loopback(), true);
assert_eq!(IpAddr::V6(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 0x1)).is_loopback(), true);sourcepub const fn is_global(&self) -> bool
 
pub const fn is_global(&self) -> bool
Returns true if the address appears to be globally routable.
See the documentation for Ipv4Addr::is_global and
Ipv6Addr::is_global for more details.
Examples
use no_std_net::{IpAddr, Ipv4Addr, Ipv6Addr};
fn main() {
    assert_eq!(IpAddr::V4(Ipv4Addr::new(80, 9, 12, 3)).is_global(), true);
    assert_eq!(IpAddr::V6(Ipv6Addr::new(0, 0, 0x1c9, 0, 0, 0xafc8, 0, 0x1)).is_global(),
               true);
}sourcepub const fn is_multicast(&self) -> bool
 
pub const fn is_multicast(&self) -> bool
Returns true if this is a multicast address.
See the documentation for Ipv4Addr::is_multicast and
Ipv6Addr::is_multicast for more details.
Examples
use no_std_net::{IpAddr, Ipv4Addr, Ipv6Addr};
assert_eq!(IpAddr::V4(Ipv4Addr::new(224, 254, 0, 0)).is_multicast(), true);
assert_eq!(IpAddr::V6(Ipv6Addr::new(0xff00, 0, 0, 0, 0, 0, 0, 0)).is_multicast(), true);sourcepub const fn is_documentation(&self) -> bool
 
pub const fn is_documentation(&self) -> bool
Returns true if this address is in a range designated for documentation.
See the documentation for Ipv4Addr::is_documentation and
Ipv6Addr::is_documentation for more details.
Examples
use no_std_net::{IpAddr, Ipv4Addr, Ipv6Addr};
fn main() {
    assert_eq!(IpAddr::V4(Ipv4Addr::new(203, 0, 113, 6)).is_documentation(), true);
    assert_eq!(IpAddr::V6(Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 0))
                      .is_documentation(), true);
}sourcepub const fn is_ipv4(&self) -> bool
 
pub const fn is_ipv4(&self) -> bool
Returns true if this address is an IPv4 address, and false otherwise.
Examples
use no_std_net::{IpAddr, Ipv4Addr, Ipv6Addr};
fn main() {
    assert_eq!(IpAddr::V4(Ipv4Addr::new(203, 0, 113, 6)).is_ipv4(), true);
    assert_eq!(IpAddr::V6(Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 0)).is_ipv4(),
               false);
}sourcepub const fn is_ipv6(&self) -> bool
 
pub const fn is_ipv6(&self) -> bool
Returns true if this address is an IPv6 address, and false otherwise.
Examples
use no_std_net::{IpAddr, Ipv4Addr, Ipv6Addr};
fn main() {
    assert_eq!(IpAddr::V4(Ipv4Addr::new(203, 0, 113, 6)).is_ipv6(), false);
    assert_eq!(IpAddr::V6(Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 0)).is_ipv6(),
               true);
}Trait Implementations
sourceimpl From<[u16; 8]> for IpAddr
 
impl From<[u16; 8]> for IpAddr
sourcefn from(segments: [u16; 8]) -> IpAddr
 
fn from(segments: [u16; 8]) -> IpAddr
Creates an IpAddr::V6 from an eight element 16-bit array.
Examples
use no_std_net::{IpAddr, Ipv6Addr};
let addr = IpAddr::from([
    525u16, 524u16, 523u16, 522u16,
    521u16, 520u16, 519u16, 518u16,
]);
assert_eq!(
    IpAddr::V6(Ipv6Addr::new(
        0x20d, 0x20c,
        0x20b, 0x20a,
        0x209, 0x208,
        0x207, 0x206
    )),
    addr
);sourceimpl From<[u8; 16]> for IpAddr
 
impl From<[u8; 16]> for IpAddr
sourcefn from(octets: [u8; 16]) -> IpAddr
 
fn from(octets: [u8; 16]) -> IpAddr
Creates an IpAddr::V6 from a sixteen element byte array.
Examples
use no_std_net::{IpAddr, Ipv6Addr};
let addr = IpAddr::from([
    25u8, 24u8, 23u8, 22u8, 21u8, 20u8, 19u8, 18u8,
    17u8, 16u8, 15u8, 14u8, 13u8, 12u8, 11u8, 10u8,
]);
assert_eq!(
    IpAddr::V6(Ipv6Addr::new(
        0x1918, 0x1716,
        0x1514, 0x1312,
        0x1110, 0x0f0e,
        0x0d0c, 0x0b0a
    )),
    addr
);sourceimpl Ord for IpAddr
 
impl Ord for IpAddr
1.21.0 · sourcefn max(self, other: Self) -> Self
 
fn max(self, other: Self) -> Self
Compares and returns the maximum of two values. Read more
1.21.0 · sourcefn min(self, other: Self) -> Self
 
fn min(self, other: Self) -> Self
Compares and returns the minimum of two values. Read more
1.50.0 · sourcefn clamp(self, min: Self, max: Self) -> Self where
    Self: PartialOrd<Self>, 
 
fn clamp(self, min: Self, max: Self) -> Self where
    Self: PartialOrd<Self>, 
Restrict a value to a certain interval. Read more
sourceimpl PartialOrd<IpAddr> for IpAddr
 
impl PartialOrd<IpAddr> for IpAddr
sourcefn partial_cmp(&self, other: &IpAddr) -> Option<Ordering>
 
fn partial_cmp(&self, other: &IpAddr) -> Option<Ordering>
This method returns an ordering between self and other values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
 
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
 
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self and other) and is used by the <=
operator. Read more
sourceimpl PartialOrd<IpAddr> for Ipv4Addr
 
impl PartialOrd<IpAddr> for Ipv4Addr
sourcefn partial_cmp(&self, other: &IpAddr) -> Option<Ordering>
 
fn partial_cmp(&self, other: &IpAddr) -> Option<Ordering>
This method returns an ordering between self and other values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
 
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
 
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self and other) and is used by the <=
operator. Read more
sourceimpl PartialOrd<IpAddr> for Ipv6Addr
 
impl PartialOrd<IpAddr> for Ipv6Addr
sourcefn partial_cmp(&self, other: &IpAddr) -> Option<Ordering>
 
fn partial_cmp(&self, other: &IpAddr) -> Option<Ordering>
This method returns an ordering between self and other values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
 
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
 
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self and other) and is used by the <=
operator. Read more
sourceimpl PartialOrd<Ipv4Addr> for IpAddr
 
impl PartialOrd<Ipv4Addr> for IpAddr
sourcefn partial_cmp(&self, other: &Ipv4Addr) -> Option<Ordering>
 
fn partial_cmp(&self, other: &Ipv4Addr) -> Option<Ordering>
This method returns an ordering between self and other values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
 
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
 
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self and other) and is used by the <=
operator. Read more
sourceimpl PartialOrd<Ipv6Addr> for IpAddr
 
impl PartialOrd<Ipv6Addr> for IpAddr
sourcefn partial_cmp(&self, other: &Ipv6Addr) -> Option<Ordering>
 
fn partial_cmp(&self, other: &Ipv6Addr) -> Option<Ordering>
This method returns an ordering between self and other values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
 
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
 
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self and other) and is used by the <=
operator. Read more
impl Copy for IpAddr
impl Eq for IpAddr
impl StructuralEq for IpAddr
impl StructuralPartialEq for IpAddr
Auto Trait Implementations
impl RefUnwindSafe for IpAddr
impl Send for IpAddr
impl Sync for IpAddr
impl Unpin for IpAddr
impl UnwindSafe for IpAddr
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