pub struct Ipv6Net(pub Ipv6Network);
Expand description
An Ipv6Net
represents a IPv6 subnetwork, including the address and network mask.
Tuple Fields§
§0: Ipv6Network
Implementations§
Source§impl Ipv6Net
impl Ipv6Net
Sourcepub const VPC_IPV6_PREFIX_LENGTH: u8 = 48u8
pub const VPC_IPV6_PREFIX_LENGTH: u8 = 48u8
The length for all VPC IPv6 prefixes
Sourcepub const VPC_SUBNET_IPV6_PREFIX_LENGTH: u8 = 64u8
pub const VPC_SUBNET_IPV6_PREFIX_LENGTH: u8 = 64u8
The prefix length for all VPC Sunets
Sourcepub fn is_unique_local(&self) -> bool
pub fn is_unique_local(&self) -> bool
Return true
if this subnetwork is in the IPv6 Unique Local Address
range defined in RFC 4193, e.g., fd00:/8
Sourcepub fn is_vpc_prefix(&self) -> bool
pub fn is_vpc_prefix(&self) -> bool
Return true
if this subnetwork is a valid VPC prefix.
This checks that the subnet is a unique local address, and has the VPC prefix length required.
Sourcepub fn is_vpc_subnet(&self, vpc_prefix: &Ipv6Net) -> bool
pub fn is_vpc_subnet(&self, vpc_prefix: &Ipv6Net) -> bool
Return true
if this subnetwork is a valid VPC Subnet, given the VPC’s
prefix.
Methods from Deref<Target = Ipv6Network>§
Sourcepub fn iter(&self) -> Ipv6NetworkIterator
pub fn iter(&self) -> Ipv6NetworkIterator
Returns an iterator over Ipv6Network
. Each call to next
will return the next
Ipv6Addr
in the given network. None
will be returned when there are no more
addresses.
Sourcepub fn network(&self) -> Ipv6Addr
pub fn network(&self) -> Ipv6Addr
Returns the address of the network denoted by this Ipv6Network
.
This means the lowest possible IPv6 address inside of the network.
§Examples
use std::net::Ipv6Addr;
use ipnetwork::Ipv6Network;
let net: Ipv6Network = "2001:db8::/96".parse().unwrap();
assert_eq!(net.network(), Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 0));
Sourcepub fn broadcast(&self) -> Ipv6Addr
pub fn broadcast(&self) -> Ipv6Addr
Returns the broadcast address of this Ipv6Network
.
This means the highest possible IPv4 address inside of the network.
§Examples
use std::net::Ipv6Addr;
use ipnetwork::Ipv6Network;
let net: Ipv6Network = "2001:db8::/96".parse().unwrap();
assert_eq!(net.broadcast(), Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0xffff, 0xffff));
pub fn ip(&self) -> Ipv6Addr
pub fn prefix(&self) -> u8
Sourcepub fn mask(&self) -> Ipv6Addr
pub fn mask(&self) -> Ipv6Addr
Returns the mask for this Ipv6Network
.
That means the prefix
most significant bits will be 1 and the rest 0
§Examples
use std::net::Ipv6Addr;
use ipnetwork::Ipv6Network;
let net: Ipv6Network = "ff01::0".parse().unwrap();
assert_eq!(net.mask(), Ipv6Addr::new(0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff));
let net: Ipv6Network = "ff01::0/32".parse().unwrap();
assert_eq!(net.mask(), Ipv6Addr::new(0xffff, 0xffff, 0, 0, 0, 0, 0, 0));
Sourcepub fn contains(&self, ip: Ipv6Addr) -> bool
pub fn contains(&self, ip: Ipv6Addr) -> bool
Checks if a given Ipv6Addr
is in this Ipv6Network
§Examples
use std::net::Ipv6Addr;
use ipnetwork::Ipv6Network;
let net: Ipv6Network = "ff01::0/32".parse().unwrap();
assert!(net.contains(Ipv6Addr::new(0xff01, 0, 0, 0, 0, 0, 0, 0x1)));
assert!(!net.contains(Ipv6Addr::new(0xffff, 0, 0, 0, 0, 0, 0, 0x1)));
Sourcepub fn size(&self) -> u128
pub fn size(&self) -> u128
Returns number of possible host addresses in this Ipv6Network
.
§Examples
use std::net::Ipv6Addr;
use ipnetwork::Ipv6Network;
let net: Ipv6Network = "ff01::0/32".parse().unwrap();
assert_eq!(net.size(), 79228162514264337593543950336);
let tinynet: Ipv6Network = "ff01::0/128".parse().unwrap();
assert_eq!(tinynet.size(), 1);
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Ipv6Net
impl<'de> Deserialize<'de> for Ipv6Net
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for Ipv6Net
impl JsonSchema for Ipv6Net
Source§fn schema_name() -> String
fn schema_name() -> String
Source§fn json_schema(_: &mut SchemaGenerator) -> Schema
fn json_schema(_: &mut SchemaGenerator) -> Schema
Source§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref
keyword. Read more