pub enum IpAddr<V4 = Ipv4Addr, V6 = Ipv6Addr> {
V4(V4),
V6(V6),
}
Expand description
An IP address.
By default, the contained address types are Ipv4Addr
and Ipv6Addr
.
However, any types can be provided. This is intended to support types like
IpAddr<SpecifiedAddr<Ipv4Addr>, SpecifiedAddr<Ipv6Addr>>
. From
is
implemented to support conversions in both directions between
IpAddr<SpecifiedAddr<Ipv4Addr>, SpecifiedAddr<Ipv6Addr>>
and
SpecifiedAddr<IpAddr>
, and similarly for other witness types.
Variants§
Implementations§
source§impl<V4, V6> IpAddr<V4, V6>
impl<V4, V6> IpAddr<V4, V6>
sourcepub fn transpose<W: IpAddrWitness<V4 = V4, V6 = V6>>(self) -> W
pub fn transpose<W: IpAddrWitness<V4 = V4, V6 = V6>>(self) -> W
Transposes an IpAddr
of a witness type to a witness type of an
IpAddr
.
For example, transpose
can be used to convert an
IpAddr<SpecifiedAddr<Ipv4Addr>, SpecifiedAddr<Ipv6Addr>>
into a
SpecifiedAddr<IpAddr<Ipv4Addr, Ipv6Addr>>
.
Trait Implementations§
source§impl From<IpAddr<LinkLocalAddr<Ipv4Addr>, LinkLocalAddr<Ipv6Addr>>> for LinkLocalAddr<IpAddr>
impl From<IpAddr<LinkLocalAddr<Ipv4Addr>, LinkLocalAddr<Ipv6Addr>>> for LinkLocalAddr<IpAddr>
source§fn from(
addr: IpAddr<LinkLocalAddr<Ipv4Addr>, LinkLocalAddr<Ipv6Addr>>
) -> LinkLocalAddr<IpAddr>
fn from( addr: IpAddr<LinkLocalAddr<Ipv4Addr>, LinkLocalAddr<Ipv6Addr>> ) -> LinkLocalAddr<IpAddr>
source§impl From<IpAddr<LinkLocalAddr<MulticastAddr<Ipv4Addr>>, LinkLocalAddr<MulticastAddr<Ipv6Addr>>>> for LinkLocalMulticastAddr<IpAddr>
impl From<IpAddr<LinkLocalAddr<MulticastAddr<Ipv4Addr>>, LinkLocalAddr<MulticastAddr<Ipv6Addr>>>> for LinkLocalMulticastAddr<IpAddr>
source§fn from(
addr: IpAddr<LinkLocalMulticastAddr<Ipv4Addr>, LinkLocalMulticastAddr<Ipv6Addr>>
) -> LinkLocalMulticastAddr<IpAddr>
fn from( addr: IpAddr<LinkLocalMulticastAddr<Ipv4Addr>, LinkLocalMulticastAddr<Ipv6Addr>> ) -> LinkLocalMulticastAddr<IpAddr>
source§impl From<IpAddr<MulticastAddr<Ipv4Addr>, MulticastAddr<Ipv6Addr>>> for MulticastAddr<IpAddr>
impl From<IpAddr<MulticastAddr<Ipv4Addr>, MulticastAddr<Ipv6Addr>>> for MulticastAddr<IpAddr>
source§fn from(
addr: IpAddr<MulticastAddr<Ipv4Addr>, MulticastAddr<Ipv6Addr>>
) -> MulticastAddr<IpAddr>
fn from( addr: IpAddr<MulticastAddr<Ipv4Addr>, MulticastAddr<Ipv6Addr>> ) -> MulticastAddr<IpAddr>
source§impl From<IpAddr<SpecifiedAddr<Ipv4Addr>, SpecifiedAddr<Ipv6Addr>>> for SpecifiedAddr<IpAddr>
impl From<IpAddr<SpecifiedAddr<Ipv4Addr>, SpecifiedAddr<Ipv6Addr>>> for SpecifiedAddr<IpAddr>
source§fn from(
addr: IpAddr<SpecifiedAddr<Ipv4Addr>, SpecifiedAddr<Ipv6Addr>>
) -> SpecifiedAddr<IpAddr>
fn from( addr: IpAddr<SpecifiedAddr<Ipv4Addr>, SpecifiedAddr<Ipv6Addr>> ) -> SpecifiedAddr<IpAddr>
source§impl<A: IpAddress> From<LinkLocalAddr<A>> for IpAddr<LinkLocalAddr<Ipv4Addr>, LinkLocalAddr<Ipv6Addr>>
impl<A: IpAddress> From<LinkLocalAddr<A>> for IpAddr<LinkLocalAddr<Ipv4Addr>, LinkLocalAddr<Ipv6Addr>>
source§fn from(
addr: LinkLocalAddr<A>
) -> IpAddr<LinkLocalAddr<Ipv4Addr>, LinkLocalAddr<Ipv6Addr>>
fn from( addr: LinkLocalAddr<A> ) -> IpAddr<LinkLocalAddr<Ipv4Addr>, LinkLocalAddr<Ipv6Addr>>
source§impl From<LinkLocalAddr<IpAddr>> for IpAddr<LinkLocalAddr<Ipv4Addr>, LinkLocalAddr<Ipv6Addr>>
impl From<LinkLocalAddr<IpAddr>> for IpAddr<LinkLocalAddr<Ipv4Addr>, LinkLocalAddr<Ipv6Addr>>
source§fn from(
addr: LinkLocalAddr<IpAddr>
) -> IpAddr<LinkLocalAddr<Ipv4Addr>, LinkLocalAddr<Ipv6Addr>>
fn from( addr: LinkLocalAddr<IpAddr> ) -> IpAddr<LinkLocalAddr<Ipv4Addr>, LinkLocalAddr<Ipv6Addr>>
source§impl<A: IpAddress> From<LinkLocalAddr<MulticastAddr<A>>> for IpAddr<LinkLocalMulticastAddr<Ipv4Addr>, LinkLocalMulticastAddr<Ipv6Addr>>
impl<A: IpAddress> From<LinkLocalAddr<MulticastAddr<A>>> for IpAddr<LinkLocalMulticastAddr<Ipv4Addr>, LinkLocalMulticastAddr<Ipv6Addr>>
source§fn from(
addr: LinkLocalMulticastAddr<A>
) -> IpAddr<LinkLocalMulticastAddr<Ipv4Addr>, LinkLocalMulticastAddr<Ipv6Addr>>
fn from( addr: LinkLocalMulticastAddr<A> ) -> IpAddr<LinkLocalMulticastAddr<Ipv4Addr>, LinkLocalMulticastAddr<Ipv6Addr>>
source§impl From<LinkLocalAddr<MulticastAddr<IpAddr>>> for IpAddr<LinkLocalMulticastAddr<Ipv4Addr>, LinkLocalMulticastAddr<Ipv6Addr>>
impl From<LinkLocalAddr<MulticastAddr<IpAddr>>> for IpAddr<LinkLocalMulticastAddr<Ipv4Addr>, LinkLocalMulticastAddr<Ipv6Addr>>
source§fn from(
addr: LinkLocalMulticastAddr<IpAddr>
) -> IpAddr<LinkLocalMulticastAddr<Ipv4Addr>, LinkLocalMulticastAddr<Ipv6Addr>>
fn from( addr: LinkLocalMulticastAddr<IpAddr> ) -> IpAddr<LinkLocalMulticastAddr<Ipv4Addr>, LinkLocalMulticastAddr<Ipv6Addr>>
source§impl<A: IpAddress> From<MulticastAddr<A>> for IpAddr<MulticastAddr<Ipv4Addr>, MulticastAddr<Ipv6Addr>>
impl<A: IpAddress> From<MulticastAddr<A>> for IpAddr<MulticastAddr<Ipv4Addr>, MulticastAddr<Ipv6Addr>>
source§fn from(
addr: MulticastAddr<A>
) -> IpAddr<MulticastAddr<Ipv4Addr>, MulticastAddr<Ipv6Addr>>
fn from( addr: MulticastAddr<A> ) -> IpAddr<MulticastAddr<Ipv4Addr>, MulticastAddr<Ipv6Addr>>
source§impl From<MulticastAddr<IpAddr>> for IpAddr<MulticastAddr<Ipv4Addr>, MulticastAddr<Ipv6Addr>>
impl From<MulticastAddr<IpAddr>> for IpAddr<MulticastAddr<Ipv4Addr>, MulticastAddr<Ipv6Addr>>
source§fn from(
addr: MulticastAddr<IpAddr>
) -> IpAddr<MulticastAddr<Ipv4Addr>, MulticastAddr<Ipv6Addr>>
fn from( addr: MulticastAddr<IpAddr> ) -> IpAddr<MulticastAddr<Ipv4Addr>, MulticastAddr<Ipv6Addr>>
source§impl<A: IpAddress> From<SpecifiedAddr<A>> for IpAddr<SpecifiedAddr<Ipv4Addr>, SpecifiedAddr<Ipv6Addr>>
impl<A: IpAddress> From<SpecifiedAddr<A>> for IpAddr<SpecifiedAddr<Ipv4Addr>, SpecifiedAddr<Ipv6Addr>>
source§fn from(
addr: SpecifiedAddr<A>
) -> IpAddr<SpecifiedAddr<Ipv4Addr>, SpecifiedAddr<Ipv6Addr>>
fn from( addr: SpecifiedAddr<A> ) -> IpAddr<SpecifiedAddr<Ipv4Addr>, SpecifiedAddr<Ipv6Addr>>
source§impl From<SpecifiedAddr<IpAddr>> for IpAddr<SpecifiedAddr<Ipv4Addr>, SpecifiedAddr<Ipv6Addr>>
impl From<SpecifiedAddr<IpAddr>> for IpAddr<SpecifiedAddr<Ipv4Addr>, SpecifiedAddr<Ipv6Addr>>
source§fn from(
addr: SpecifiedAddr<IpAddr>
) -> IpAddr<SpecifiedAddr<Ipv4Addr>, SpecifiedAddr<Ipv6Addr>>
fn from( addr: SpecifiedAddr<IpAddr> ) -> IpAddr<SpecifiedAddr<Ipv4Addr>, SpecifiedAddr<Ipv6Addr>>
source§impl LinkLocalAddress for IpAddr
impl LinkLocalAddress for IpAddr
source§fn is_link_local(&self) -> bool
fn is_link_local(&self) -> bool
Is this address link-local?
source§impl MappedAddress for IpAddr
impl MappedAddress for IpAddr
source§fn is_non_mapped(&self) -> bool
fn is_non_mapped(&self) -> bool
Is this address non-mapped?
source§impl MulticastAddress for IpAddr
impl MulticastAddress for IpAddr
source§fn is_multicast(&self) -> bool
fn is_multicast(&self) -> bool
Is this an address in the multicast subnet?
is_multicast
returns true if self
is in Ip::MULTICAST_SUBNET
for
the IP version of this address.
source§impl<V4: Ord, V6: Ord> Ord for IpAddr<V4, V6>
impl<V4: Ord, V6: Ord> Ord for IpAddr<V4, V6>
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere Self: Sized,
source§impl<V4: PartialEq, V6: PartialEq> PartialEq for IpAddr<V4, V6>
impl<V4: PartialEq, V6: PartialEq> PartialEq for IpAddr<V4, V6>
source§impl<V4: PartialOrd, V6: PartialOrd> PartialOrd for IpAddr<V4, V6>
impl<V4: PartialOrd, V6: PartialOrd> PartialOrd for IpAddr<V4, V6>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresource§impl Scope for IpAddr<(), Ipv6Scope>
impl Scope for IpAddr<(), Ipv6Scope>
source§fn can_have_zone(&self) -> bool
fn can_have_zone(&self) -> bool
source§impl ScopeableAddress for IpAddr
impl ScopeableAddress for IpAddr
source§impl SpecifiedAddress for IpAddr
impl SpecifiedAddress for IpAddr
source§fn is_specified(&self) -> bool
fn is_specified(&self) -> bool
Is this an address other than the unspecified address?
is_specified
returns true if self
is not equal to
Ip::UNSPECIFIED_ADDRESS
for the IP version of this address.