Add Ipv6Addr::is_unicast
This commit is contained in:
parent
dc08641128
commit
7f27b29fd4
1 changed files with 28 additions and 0 deletions
|
@ -1267,6 +1267,34 @@ impl Ipv6Addr {
|
|||
(self.segments()[0] & 0xfe00) == 0xfc00
|
||||
}
|
||||
|
||||
/// Returns [`true`] if this is a unicast address, as defined by [IETF RFC 4291].
|
||||
/// Any address that is not a [multicast address] (`ff00::/8`) is unicast.
|
||||
///
|
||||
/// [IETF RFC 4291]: https://tools.ietf.org/html/rfc4291
|
||||
/// [multicast address]: Ipv6Addr::is_multicast
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// #![feature(ip)]
|
||||
///
|
||||
/// use std::net::Ipv6Addr;
|
||||
///
|
||||
/// // The unspecified and loopback addresses are unicast.
|
||||
/// assert_eq!(Ipv6Addr::UNSPECIFIED.is_unicast(), true);
|
||||
/// assert_eq!(Ipv6Addr::LOCALHOST.is_unicast(), true);
|
||||
///
|
||||
/// // Any address that is not a multicast address (`ff00::/8`) is unicast.
|
||||
/// assert_eq!(Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 0).is_unicast(), true);
|
||||
/// assert_eq!(Ipv6Addr::new(0xff00, 0, 0, 0, 0, 0, 0, 0).is_unicast(), false);
|
||||
/// ```
|
||||
#[rustc_const_unstable(feature = "const_ipv6", issue = "76205")]
|
||||
#[unstable(feature = "ip", issue = "27709")]
|
||||
#[inline]
|
||||
pub const fn is_unicast(&self) -> bool {
|
||||
!self.is_multicast()
|
||||
}
|
||||
|
||||
/// Returns `true` if the address is a unicast address with link-local scope,
|
||||
/// as defined in [RFC 4291].
|
||||
///
|
||||
|
|
Loading…
Add table
Reference in a new issue