use std::net::*;
#[derive(Clone, Debug, Default)]
pub enum IPStack {
IPv6,
IPv4,
#[default]
Dual,
}
impl IPStack {
pub fn allows_ipv6(&self) -> bool {
matches!(self, Self::IPv6 | Self::Dual)
}
pub fn allows_ipv4(&self) -> bool {
matches!(self, Self::IPv4 | Self::Dual)
}
pub fn allows(&self, address: &IpAddr) -> bool {
match self {
Self::IPv6 => address.is_ipv6(),
Self::IPv4 => address.is_ipv4(),
Self::Dual => true,
}
}
}