Net Enums
Networking enums
IpAddr Enum
Section titled “IpAddr Enum”use std::net::{IpAddr, Ipv4Addr, Ipv6Addr};
fn main() { // IpAddr variants: V4 and V6 let v4: IpAddr = IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)); let v6: IpAddr = IpAddr::V6(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1));
println!("=== IpAddr ==="); println!("IPv4: {}", v4); println!("IPv6: {}", v6);
// Check type println!("\n=== Type Checks ==="); println!("v4.is_ipv4(): {}", v4.is_ipv4()); println!("v4.is_ipv6(): {}", v4.is_ipv6()); println!("v6.is_ipv4(): {}", v6.is_ipv4()); println!("v6.is_ipv6(): {}", v6.is_ipv6());
// From string let parsed: IpAddr = "192.168.1.1".parse().unwrap(); println!("\nParsed: {}", parsed);
let parsed_v6: IpAddr = "::1".parse().unwrap(); println!("Parsed v6: {}", parsed_v6);
// Match on variant fn describe(ip: IpAddr) { match ip { IpAddr::V4(addr) => println!("IPv4: {:?}", addr.octets()), IpAddr::V6(addr) => println!("IPv6: {:?}", addr.segments()), } }
describe(v4); describe(v6);}เข้าสู่ระบบเพื่อดูเนื้อหาเต็ม
ยืนยันตัวตนด้วยบัญชี Google เพื่อปลดล็อกบทความทั้งหมด
Login with Google