当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust Ipv6MulticastScope用法及代码示例


本文简要介绍rust语言中 Enum std::net::Ipv6MulticastScope 的用法。

用法

#[non_exhaustive]
pub enum Ipv6MulticastScope {
    InterfaceLocal,
    LinkLocal,
    RealmLocal,
    AdminLocal,
    SiteLocal,
    OrganizationLocal,
    Global,
}

IPv6 multicast address 的范围如 IETF RFC 7346 section 2 中定义。

稳定性保证

并非多播范围的所有可能值都已分配。未来的 RFC 可能会引入新的范围,这些范围将作为该枚举的变体添加;因此,枚举被标记为 #[non_exhaustive]

例子

#![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!")
}

变体(非详尽)

非详尽的枚举将来可能会添加其他变体。因此,当匹配非穷举枚举的变体时,必须添加一个额外的通配符来说明任何未来的变体。

InterfaceLocal

Interface-Local 范围。

LinkLocal

Link-Local 范围。

RealmLocal

Realm-Local 范围。

AdminLocal

Admin-Local 范围。

SiteLocal

Site-Local 范围。

OrganizationLocal

Organization-Local 范围。

Global

全局范围。

相关用法


注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 Enum std::net::Ipv6MulticastScope。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。