當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。