pub enum CidrSubnet {
V4([u8; 4], [u8; 4]),
V6([u8; 16], [u8; 16]),
}
Expand description
CIDR subnet, as per RFC 4632
You might know CIDR subnets better by their textual representation
where they consist of an ip address followed by a slash and a prefix
number, for example 192.168.99.0/24
.
The first field in the enum is the address, the second is the mask. Both are specified in network byte order.
Variants§
Implementations§
Source§impl CidrSubnet
impl CidrSubnet
Sourcepub fn from_addr_prefix(addr: IpAddr, prefix: u8) -> Self
pub fn from_addr_prefix(addr: IpAddr, prefix: u8) -> Self
Obtains the CidrSubnet from an ip address as well as the specified prefix number.
// The "192.0.2.0/24" example from
// https://tools.ietf.org/html/rfc5280#page-42
let addr = IpAddr::from_str("192.0.2.0").unwrap();
let subnet = CidrSubnet::from_addr_prefix(addr, 24);
assert_eq!(subnet, CidrSubnet::V4([0xC0, 0x00, 0x02, 0x00], [0xFF, 0xFF, 0xFF, 0x00]));
Sourcepub fn from_v4_prefix(addr: [u8; 4], prefix: u8) -> Self
pub fn from_v4_prefix(addr: [u8; 4], prefix: u8) -> Self
Obtains the CidrSubnet from an IPv4 address in network byte order as well as the specified prefix.
Sourcepub fn from_v6_prefix(addr: [u8; 16], prefix: u8) -> Self
pub fn from_v6_prefix(addr: [u8; 16], prefix: u8) -> Self
Obtains the CidrSubnet from an IPv6 address in network byte order as well as the specified prefix.
Trait Implementations§
Source§impl Clone for CidrSubnet
impl Clone for CidrSubnet
Source§fn clone(&self) -> CidrSubnet
fn clone(&self) -> CidrSubnet
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for CidrSubnet
impl Debug for CidrSubnet
Source§impl FromStr for CidrSubnet
Obtains the CidrSubnet from the well-known
addr/prefix notation.
impl FromStr for CidrSubnet
Obtains the CidrSubnet from the well-known addr/prefix notation.
// The "192.0.2.0/24" example from
// https://tools.ietf.org/html/rfc5280#page-42
let subnet = CidrSubnet::from_str("192.0.2.0/24").unwrap();
assert_eq!(subnet, CidrSubnet::V4([0xC0, 0x00, 0x02, 0x00], [0xFF, 0xFF, 0xFF, 0x00]));
Source§impl Hash for CidrSubnet
impl Hash for CidrSubnet
Source§impl PartialEq for CidrSubnet
impl PartialEq for CidrSubnet
impl Eq for CidrSubnet
impl StructuralPartialEq for CidrSubnet
Auto Trait Implementations§
impl Freeze for CidrSubnet
impl RefUnwindSafe for CidrSubnet
impl Send for CidrSubnet
impl Sync for CidrSubnet
impl Unpin for CidrSubnet
impl UnwindSafe for CidrSubnet
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