pub struct Netv6Addr { /* private fields */ }
Expand description
A structure representing an IPv6 network.
Internally, this structure includes two values; an Ipv6Addr
representing the network address (addr
), and another
representing the netmask (mask
).
Implementations§
Source§impl Netv6Addr
impl Netv6Addr
pub const fn mask(&self) -> Ipv6Addr
pub const fn addr(&self) -> Ipv6Addr
pub fn is_cidr(&self) -> bool
Sourcepub fn new(addr: Ipv6Addr, mask: Ipv6Addr) -> Self
pub fn new(addr: Ipv6Addr, mask: Ipv6Addr) -> Self
Create a new Netv6Addr
from the given addr
and mask
.
Masks the given addr
value with the given mask
before
the structure containing both is returned.
§Examples
let network = Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 0x42);
let netmask = Ipv6Addr::new(0xff00, 0, 0, 0, 0, 0, 0, 0);
let netaddr = Netv6Addr::new(network, netmask);
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Netv6Addr
impl<'de> Deserialize<'de> for Netv6Addr
Source§fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error>
fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error>
Deserialize this value from the given Serde deserializer. Read more
Source§impl FromStr for Netv6Addr
impl FromStr for Netv6Addr
Source§fn from_str(string: &str) -> Result<Self>
fn from_str(string: &str) -> Result<Self>
Parse a Netv6Addr
from a string
Often used implicitly, this implementation allows for a few formats to be given:
- (Standard) CIDR format:
2001:db8:dead:beef::1/64
- Extended format:
2001:db8:dead:beef::1 ffff:ffff:ffff:ffff::
- Extended format (with a
/
delimiter):2001:db8:dead:beef::1/ffff:ffff:ffff:ffff::
§Examples
let parsed: Netv6Addr = "2001:db8:dead:beef::1/32".parse().unwrap();
let addr: std::net::Ipv6Addr = "2001:db8::0".parse().unwrap();
let mask: std::net::Ipv6Addr = "ffff:ffff::0".parse().unwrap();
assert_eq!(parsed, Netv6Addr::new(addr, mask))
let parsed: Netv6Addr = "2001:db8:dead:beef::1 ffff:ffff::".parse().unwrap();
let addr: std::net::Ipv6Addr = "2001:db8::0".parse().unwrap();
let mask: std::net::Ipv6Addr = "ffff:ffff::0".parse().unwrap();
assert_eq!(parsed, Netv6Addr::new(addr, mask))
let parsed: Netv6Addr = "2001:db8:dead:beef::1/ffff:ffff::".parse().unwrap();
let addr: std::net::Ipv6Addr = "2001:db8::0".parse().unwrap();
let mask: std::net::Ipv6Addr = "ffff:ffff::0".parse().unwrap();
assert_eq!(parsed, Netv6Addr::new(addr, mask))
Source§impl Ord for Netv6Addr
impl Ord for Netv6Addr
Source§impl PartialOrd for Netv6Addr
impl PartialOrd for Netv6Addr
impl Copy for Netv6Addr
impl Eq for Netv6Addr
impl StructuralPartialEq for Netv6Addr
Auto Trait Implementations§
impl Freeze for Netv6Addr
impl RefUnwindSafe for Netv6Addr
impl Send for Netv6Addr
impl Sync for Netv6Addr
impl Unpin for Netv6Addr
impl UnwindSafe for Netv6Addr
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