Enum embedded_nal::IpAddr [−][src]
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
impl IpAddr[src]
impl IpAddr[src]pub const fn is_unspecified(&self) -> bool[src]
pub const fn is_unspecified(&self) -> bool[src]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);
pub const fn is_loopback(&self) -> bool[src]
pub const fn is_loopback(&self) -> bool[src]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);
pub const fn is_global(&self) -> bool[src]
pub const fn is_global(&self) -> bool[src]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); }
pub const fn is_multicast(&self) -> bool[src]
pub const fn is_multicast(&self) -> bool[src]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);
pub const fn is_documentation(&self) -> bool[src]
pub const fn is_documentation(&self) -> bool[src]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); }
pub const fn is_ipv4(&self) -> bool[src]
pub const fn is_ipv4(&self) -> bool[src]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); }
pub const fn is_ipv6(&self) -> bool[src]
pub const fn is_ipv6(&self) -> bool[src]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
impl From<[u16; 8]> for IpAddr[src]
impl From<[u16; 8]> for IpAddr[src]pub fn from(segments: [u16; 8]) -> IpAddr[src]
pub fn from(segments: [u16; 8]) -> IpAddr[src]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 );
impl From<[u8; 16]> for IpAddr[src]
impl From<[u8; 16]> for IpAddr[src]pub fn from(octets: [u8; 16]) -> IpAddr[src]
pub fn from(octets: [u8; 16]) -> IpAddr[src]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 );
impl Ord for IpAddr[src]
impl Ord for IpAddr[src]impl PartialOrd<IpAddr> for Ipv6Addr[src]
impl PartialOrd<IpAddr> for Ipv6Addr[src]pub fn partial_cmp(&self, other: &IpAddr) -> Option<Ordering>[src]
pub fn partial_cmp(&self, other: &IpAddr) -> Option<Ordering>[src]This method returns an ordering between self and other values if one exists. Read more
#[must_use]fn lt(&self, other: &Rhs) -> bool1.0.0[src]
#[must_use]fn lt(&self, other: &Rhs) -> bool1.0.0[src]This method tests less than (for self and other) and is used by the < operator. Read more
#[must_use]fn le(&self, other: &Rhs) -> bool1.0.0[src]
#[must_use]fn le(&self, other: &Rhs) -> bool1.0.0[src]This method tests less than or equal to (for self and other) and is used by the <=
operator. Read more
impl PartialOrd<IpAddr> for Ipv4Addr[src]
impl PartialOrd<IpAddr> for Ipv4Addr[src]pub fn partial_cmp(&self, other: &IpAddr) -> Option<Ordering>[src]
pub fn partial_cmp(&self, other: &IpAddr) -> Option<Ordering>[src]This method returns an ordering between self and other values if one exists. Read more
#[must_use]fn lt(&self, other: &Rhs) -> bool1.0.0[src]
#[must_use]fn lt(&self, other: &Rhs) -> bool1.0.0[src]This method tests less than (for self and other) and is used by the < operator. Read more
#[must_use]fn le(&self, other: &Rhs) -> bool1.0.0[src]
#[must_use]fn le(&self, other: &Rhs) -> bool1.0.0[src]This method tests less than or equal to (for self and other) and is used by the <=
operator. Read more
impl PartialOrd<IpAddr> for IpAddr[src]
impl PartialOrd<IpAddr> for IpAddr[src]pub fn partial_cmp(&self, other: &IpAddr) -> Option<Ordering>[src]
pub fn partial_cmp(&self, other: &IpAddr) -> Option<Ordering>[src]This method returns an ordering between self and other values if one exists. Read more
#[must_use]fn lt(&self, other: &Rhs) -> bool1.0.0[src]
#[must_use]fn lt(&self, other: &Rhs) -> bool1.0.0[src]This method tests less than (for self and other) and is used by the < operator. Read more
#[must_use]fn le(&self, other: &Rhs) -> bool1.0.0[src]
#[must_use]fn le(&self, other: &Rhs) -> bool1.0.0[src]This method tests less than or equal to (for self and other) and is used by the <=
operator. Read more
impl PartialOrd<Ipv4Addr> for IpAddr[src]
impl PartialOrd<Ipv4Addr> for IpAddr[src]pub fn partial_cmp(&self, other: &Ipv4Addr) -> Option<Ordering>[src]
pub fn partial_cmp(&self, other: &Ipv4Addr) -> Option<Ordering>[src]This method returns an ordering between self and other values if one exists. Read more
#[must_use]fn lt(&self, other: &Rhs) -> bool1.0.0[src]
#[must_use]fn lt(&self, other: &Rhs) -> bool1.0.0[src]This method tests less than (for self and other) and is used by the < operator. Read more
#[must_use]fn le(&self, other: &Rhs) -> bool1.0.0[src]
#[must_use]fn le(&self, other: &Rhs) -> bool1.0.0[src]This method tests less than or equal to (for self and other) and is used by the <=
operator. Read more
impl PartialOrd<Ipv6Addr> for IpAddr[src]
impl PartialOrd<Ipv6Addr> for IpAddr[src]pub fn partial_cmp(&self, other: &Ipv6Addr) -> Option<Ordering>[src]
pub fn partial_cmp(&self, other: &Ipv6Addr) -> Option<Ordering>[src]This method returns an ordering between self and other values if one exists. Read more
#[must_use]fn lt(&self, other: &Rhs) -> bool1.0.0[src]
#[must_use]fn lt(&self, other: &Rhs) -> bool1.0.0[src]This method tests less than (for self and other) and is used by the < operator. Read more
#[must_use]fn le(&self, other: &Rhs) -> bool1.0.0[src]
#[must_use]fn le(&self, other: &Rhs) -> bool1.0.0[src]This method tests less than or equal to (for self and other) and is used by the <=
operator. Read more