Enum rcgen::CidrSubnet
source · 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_str(s: &str) -> Result<Self, ()>
pub fn from_str(s: &str) -> Result<Self, ()>
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]));
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 Hash for CidrSubnet
impl Hash for CidrSubnet
source§impl PartialEq for CidrSubnet
impl PartialEq for CidrSubnet
source§fn eq(&self, other: &CidrSubnet) -> bool
fn eq(&self, other: &CidrSubnet) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.impl Eq for CidrSubnet
impl StructuralEq for CidrSubnet
impl StructuralPartialEq for CidrSubnet
Auto Trait Implementations§
impl RefUnwindSafe for CidrSubnet
impl Send for CidrSubnet
impl Sync for CidrSubnet
impl Unpin for CidrSubnet
impl UnwindSafe for CidrSubnet
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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