///|
pub enum Ipv6Scope {
Unspecified6
Loopback6
Multicast6
UniqueLocal6
LinkLocal6
Documentation6
Global6
} derive(Eq, Debug)
///|
pub fn Ipv6Scope::to_string(self : Ipv6Scope) -> String {
match self {
Unspecified6 => "unspecified"
Loopback6 => "loopback"
Multicast6 => "multicast"
UniqueLocal6 => "unique-local"
LinkLocal6 => "link-local"
Documentation6 => "documentation"
Global6 => "global"
}
}
///|
pub fn Ipv6Address::scope(self : Ipv6Address) -> Ipv6Scope {
if self.is_unspecified() {
Unspecified6
} else if self.is_loopback() {
Loopback6
} else if self.is_multicast() {
Multicast6
} else if self.is_unique_local() {
UniqueLocal6
} else if self.is_link_local() {
LinkLocal6
} else if self.is_documentation() {
Documentation6
} else {
Global6
}
}
///|
pub fn Ipv6Address::is_documentation(self : Ipv6Address) -> Bool {
Ipv6Network::parse("2001:db8::/32").unwrap().contains(self)
}
///|
pub fn Ipv6Address::is_global_unicast(self : Ipv6Address) -> Bool {
self.scope() == Global6
}
///|
pub fn Ipv6Address::is_special_purpose(self : Ipv6Address) -> Bool {
self.scope() != Global6
}