Enum ockam_core::lib::net::IpAddr 1.7.0[−][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.
The size of an IpAddr
instance may vary depending on the target operating
system.
Examples
use 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
1.12.0 (const: 1.50.0)[src]
pub const fn is_unspecified(&self) -> bool
1.12.0 (const: 1.50.0)[src]Returns true
for the special ‘unspecified’ address.
See the documentation for Ipv4Addr::is_unspecified()
and
Ipv6Addr::is_unspecified()
for more details.
Examples
use 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
1.12.0 (const: 1.50.0)[src]
pub const fn is_loopback(&self) -> bool
1.12.0 (const: 1.50.0)[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 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]
🔬 This is a nightly-only experimental API. (ip
)
pub const fn is_global(&self) -> bool
[src]ip
)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
#![feature(ip)] use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; 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
1.12.0 (const: 1.50.0)[src]
pub const fn is_multicast(&self) -> bool
1.12.0 (const: 1.50.0)[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 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]
🔬 This is a nightly-only experimental API. (ip
)
pub const fn is_documentation(&self) -> bool
[src]ip
)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
#![feature(ip)] use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; 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
1.16.0 (const: 1.50.0)[src]
pub const fn is_ipv4(&self) -> bool
1.16.0 (const: 1.50.0)[src]Returns true
if this address is an IPv4
address, and false
otherwise.
Examples
use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; 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
1.16.0 (const: 1.50.0)[src]
pub const fn is_ipv6(&self) -> bool
1.16.0 (const: 1.50.0)[src]Returns true
if this address is an IPv6
address, and false
otherwise.
Examples
use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; 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<'de> Deserialize<'de> for IpAddr
[src]
impl<'de> Deserialize<'de> for IpAddr
[src]pub fn deserialize<D>(
deserializer: D
) -> Result<IpAddr, <D as Deserializer<'de>>::Error> where
D: Deserializer<'de>,
[src]
pub fn deserialize<D>(
deserializer: D
) -> Result<IpAddr, <D as Deserializer<'de>>::Error> where
D: Deserializer<'de>,
[src]Deserialize this value from the given Serde deserializer. Read more
impl From<[u16; 8]> for IpAddr
1.17.0[src]
impl From<[u16; 8]> for IpAddr
1.17.0[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 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
1.17.0[src]
impl From<[u8; 16]> for IpAddr
1.17.0[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 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 FromStr for IpAddr
[src]
impl FromStr for IpAddr
[src]type Err = AddrParseError
type Err = AddrParseError
The associated error which can be returned from parsing.
impl Ord for IpAddr
[src]
impl Ord for IpAddr
[src]impl PartialOrd<IpAddr> for Ipv4Addr
1.16.0[src]
impl PartialOrd<IpAddr> for Ipv4Addr
1.16.0[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 Ipv6Addr
1.16.0[src]
impl PartialOrd<IpAddr> for Ipv6Addr
1.16.0[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
1.16.0[src]
impl PartialOrd<Ipv4Addr> for IpAddr
1.16.0[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
1.16.0[src]
impl PartialOrd<Ipv6Addr> for IpAddr
1.16.0[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
impl Serialize for IpAddr
[src]
impl Serialize for IpAddr
[src]pub fn serialize<S>(
&self,
serializer: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error> where
S: Serializer,
[src]
pub fn serialize<S>(
&self,
serializer: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error> where
S: Serializer,
[src]Serialize this value into the given Serde serializer. Read more
impl Copy for IpAddr
[src]
impl Eq for IpAddr
[src]
impl StructuralEq for IpAddr
[src]
impl StructuralPartialEq for IpAddr
[src]
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
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,