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) -> bool
1.0.0[src]
#[must_use]fn lt(&self, other: &Rhs) -> bool
1.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) -> bool
1.0.0[src]
#[must_use]fn le(&self, other: &Rhs) -> bool
1.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) -> bool
1.0.0[src]
#[must_use]fn lt(&self, other: &Rhs) -> bool
1.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) -> bool
1.0.0[src]
#[must_use]fn le(&self, other: &Rhs) -> bool
1.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) -> bool
1.0.0[src]
#[must_use]fn lt(&self, other: &Rhs) -> bool
1.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) -> bool
1.0.0[src]
#[must_use]fn le(&self, other: &Rhs) -> bool
1.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) -> bool
1.0.0[src]
#[must_use]fn lt(&self, other: &Rhs) -> bool
1.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) -> bool
1.0.0[src]
#[must_use]fn le(&self, other: &Rhs) -> bool
1.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) -> bool
1.0.0[src]
#[must_use]fn lt(&self, other: &Rhs) -> bool
1.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) -> bool
1.0.0[src]
#[must_use]fn le(&self, other: &Rhs) -> bool
1.0.0[src]This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more