use bare_types::net::{Host, Port, SocketAddr};
fn main() {
println!("=== Socket Address Operations ===\n");
let host = Host::parse_str("192.168.1.1").unwrap();
let port = Port::HTTP;
let socket = SocketAddr::new(host, port);
println!("Socket from IP: {}", socket);
println!(" Is IP: {}", socket.is_ip());
println!(" Is domain: {}", socket.is_domain_name());
println!(" Port: {}\n", socket.as_port());
let host = Host::parse_str("example.com").unwrap();
let port = Port::HTTPS;
let socket = SocketAddr::new(host, port);
println!("Socket from domain: {}", socket);
println!(" Is IP: {}", socket.is_ip());
println!(" Is domain: {}", socket.is_domain_name());
println!(" Port: {}\n", socket.as_port());
let socket: SocketAddr = "192.168.1.1:8080".parse().unwrap();
println!("Parsed socket: {}", socket);
let (host, port) = socket.into_parts();
println!(" Host: {}", host);
println!(" Port: {}\n", port);
let socket: SocketAddr = "[::1]:8080".parse().unwrap();
println!("IPv6 socket: {}", socket);
println!(" Is IPv6: {}\n", socket.is_ip());
println!("=== Host Type Operations ===\n");
let host_ip = Host::parse_str("192.168.1.1").unwrap();
println!("Host from IP: {}", host_ip);
println!(" Is IP: {}", host_ip.is_ipaddr());
println!(" Is domain: {}", host_ip.is_domainname());
println!(" Is hostname: {}", host_ip.is_hostname());
let host_domain = Host::parse_str("example.com").unwrap();
println!("\nHost from domain: {}", host_domain);
println!(" Is IP: {}", host_domain.is_ipaddr());
println!(" Is domain: {}", host_domain.is_domainname());
let host_name = Host::parse_str("localhost").unwrap();
println!("\nHost from hostname: {}", host_name);
println!(" Is hostname: {}", host_name.is_hostname());
println!(" Is localhost: {}", host_name.is_localhost());
println!("\n=== Port Operations ===\n");
let port = Port::HTTP;
println!("HTTP port: {}", port);
println!(" Is system: {}", port.is_system_port());
let port = Port::new(8080).unwrap();
println!("\nCustom port: {}", port);
println!(" Is system: {}", port.is_system_port());
println!(" Is registered: {}", port.is_registered_port());
println!(" Is dynamic: {}", port.is_dynamic_port());
}