mod ip_addr_private { pub trait Sealed { } }
pub trait IsntIpAddrExt: ip_addr_private::Sealed {
#[must_use]
fn is_not_unspecified(&self) -> bool;
#[must_use]
fn is_not_loopback(&self) -> bool;
#[must_use]
fn is_not_multicast(&self) -> bool;
#[must_use]
fn is_not_ipv4(&self) -> bool;
#[must_use]
fn is_not_ipv6(&self) -> bool;
}
impl ip_addr_private::Sealed for std::net::IpAddr { }
impl IsntIpAddrExt for std::net::IpAddr {
#[inline]
fn is_not_unspecified(&self) -> bool {
!self.is_unspecified()
}
#[inline]
fn is_not_loopback(&self) -> bool {
!self.is_loopback()
}
#[inline]
fn is_not_multicast(&self) -> bool {
!self.is_multicast()
}
#[inline]
fn is_not_ipv4(&self) -> bool {
!self.is_ipv4()
}
#[inline]
fn is_not_ipv6(&self) -> bool {
!self.is_ipv6()
}
}
mod ipv4_addr_private { pub trait Sealed { } }
pub trait IsntIpv4AddrExt: ipv4_addr_private::Sealed {
#[must_use]
fn is_not_unspecified(&self) -> bool;
#[must_use]
fn is_not_loopback(&self) -> bool;
#[must_use]
fn is_not_private(&self) -> bool;
#[must_use]
fn is_not_link_local(&self) -> bool;
#[must_use]
fn is_not_multicast(&self) -> bool;
#[must_use]
fn is_not_broadcast(&self) -> bool;
#[must_use]
fn is_not_documentation(&self) -> bool;
}
impl ipv4_addr_private::Sealed for std::net::Ipv4Addr { }
impl IsntIpv4AddrExt for std::net::Ipv4Addr {
#[inline]
fn is_not_unspecified(&self) -> bool {
!self.is_unspecified()
}
#[inline]
fn is_not_loopback(&self) -> bool {
!self.is_loopback()
}
#[inline]
fn is_not_private(&self) -> bool {
!self.is_private()
}
#[inline]
fn is_not_link_local(&self) -> bool {
!self.is_link_local()
}
#[inline]
fn is_not_multicast(&self) -> bool {
!self.is_multicast()
}
#[inline]
fn is_not_broadcast(&self) -> bool {
!self.is_broadcast()
}
#[inline]
fn is_not_documentation(&self) -> bool {
!self.is_documentation()
}
}
mod ipv6_addr_private { pub trait Sealed { } }
pub trait IsntIpv6AddrExt: ipv6_addr_private::Sealed {
#[must_use]
fn is_not_unspecified(&self) -> bool;
#[must_use]
fn is_not_loopback(&self) -> bool;
#[must_use]
fn is_not_unique_local(&self) -> bool;
#[must_use]
fn is_not_unicast_link_local(&self) -> bool;
#[must_use]
fn is_not_multicast(&self) -> bool;
}
impl ipv6_addr_private::Sealed for std::net::Ipv6Addr { }
impl IsntIpv6AddrExt for std::net::Ipv6Addr {
#[inline]
fn is_not_unspecified(&self) -> bool {
!self.is_unspecified()
}
#[inline]
fn is_not_loopback(&self) -> bool {
!self.is_loopback()
}
#[inline]
fn is_not_unique_local(&self) -> bool {
!self.is_unique_local()
}
#[inline]
fn is_not_unicast_link_local(&self) -> bool {
!self.is_unicast_link_local()
}
#[inline]
fn is_not_multicast(&self) -> bool {
!self.is_multicast()
}
}
mod socket_addr_private { pub trait Sealed { } }
pub trait IsntSocketAddrExt: socket_addr_private::Sealed {
#[must_use]
fn is_not_ipv4(&self) -> bool;
#[must_use]
fn is_not_ipv6(&self) -> bool;
}
impl socket_addr_private::Sealed for std::net::SocketAddr { }
impl IsntSocketAddrExt for std::net::SocketAddr {
#[inline]
fn is_not_ipv4(&self) -> bool {
!self.is_ipv4()
}
#[inline]
fn is_not_ipv6(&self) -> bool {
!self.is_ipv6()
}
}