mirror of
https://github.com/rust-lang/rust.git
synced 2024-10-31 06:22:00 +00:00
Rollup merge of #86936 - CDirkx:ipv6-multicast, r=JohnTitor
Add documentation for `Ipv6MulticastScope` Adds basic documentation to the unstable `Ipv6MulticastScope`, as well as marking it `#[non_exhaustive]` because future IETF RFCs may introduce additional scopes. The documentation mentions this in a section "Stability Guarantees": > /// Not all possible values for a multicast scope have been assigned. /// Future RFCs may introduce new scopes, which will be added as variants to this enum; /// because of this the enum is marked as `#[non_exhaustive]`.
This commit is contained in:
commit
f386ae3533
@ -116,16 +116,58 @@ pub struct Ipv6Addr {
|
|||||||
inner: c::in6_addr,
|
inner: c::in6_addr,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[allow(missing_docs)]
|
/// Scope of an [IPv6 multicast address] as defined in [IETF RFC 7346 section 2].
|
||||||
|
///
|
||||||
|
/// # Stability Guarantees
|
||||||
|
///
|
||||||
|
/// Not all possible values for a multicast scope have been assigned.
|
||||||
|
/// Future RFCs may introduce new scopes, which will be added as variants to this enum;
|
||||||
|
/// because of this the enum is marked as `#[non_exhaustive]`.
|
||||||
|
///
|
||||||
|
/// # Examples
|
||||||
|
/// ```
|
||||||
|
/// #![feature(ip)]
|
||||||
|
///
|
||||||
|
/// use std::net::Ipv6Addr;
|
||||||
|
/// use std::net::Ipv6MulticastScope::*;
|
||||||
|
///
|
||||||
|
/// // An IPv6 multicast address with global scope (`ff0e::`).
|
||||||
|
/// let address = Ipv6Addr::new(0xff0e, 0, 0, 0, 0, 0, 0, 0);
|
||||||
|
///
|
||||||
|
/// // Will print "Global scope".
|
||||||
|
/// match address.multicast_scope() {
|
||||||
|
/// Some(InterfaceLocal) => println!("Interface-Local scope"),
|
||||||
|
/// Some(LinkLocal) => println!("Link-Local scope"),
|
||||||
|
/// Some(RealmLocal) => println!("Realm-Local scope"),
|
||||||
|
/// Some(AdminLocal) => println!("Admin-Local scope"),
|
||||||
|
/// Some(SiteLocal) => println!("Site-Local scope"),
|
||||||
|
/// Some(OrganizationLocal) => println!("Organization-Local scope"),
|
||||||
|
/// Some(Global) => println!("Global scope"),
|
||||||
|
/// Some(_) => println!("Unknown scope"),
|
||||||
|
/// None => println!("Not a multicast address!")
|
||||||
|
/// }
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
///
|
||||||
|
/// [IPv6 multicast address]: Ipv6Addr
|
||||||
|
/// [IETF RFC 7346 section 2]: https://tools.ietf.org/html/rfc7346#section-2
|
||||||
#[derive(Copy, PartialEq, Eq, Clone, Hash, Debug)]
|
#[derive(Copy, PartialEq, Eq, Clone, Hash, Debug)]
|
||||||
#[unstable(feature = "ip", issue = "27709")]
|
#[unstable(feature = "ip", issue = "27709")]
|
||||||
|
#[non_exhaustive]
|
||||||
pub enum Ipv6MulticastScope {
|
pub enum Ipv6MulticastScope {
|
||||||
|
/// Interface-Local scope.
|
||||||
InterfaceLocal,
|
InterfaceLocal,
|
||||||
|
/// Link-Local scope.
|
||||||
LinkLocal,
|
LinkLocal,
|
||||||
|
/// Realm-Local scope.
|
||||||
RealmLocal,
|
RealmLocal,
|
||||||
|
/// Admin-Local scope.
|
||||||
AdminLocal,
|
AdminLocal,
|
||||||
|
/// Site-Local scope.
|
||||||
SiteLocal,
|
SiteLocal,
|
||||||
|
/// Organization-Local scope.
|
||||||
OrganizationLocal,
|
OrganizationLocal,
|
||||||
|
/// Global scope.
|
||||||
Global,
|
Global,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user