//! Networking primitives
//!usestd::net::AddrParseError;usestd::str::FromStr;pubmodtcp;pubmodudp;#[cfg(unix)]pubmodunix;/// An IP address, either a IPv4 or IPv6 address.
////// Once `std::net::IpAddr` is stable, this will go away.
pubenumIpAddr{V4(Ipv4Addr),V6(Ipv6Addr),}pubusestd::net::Ipv4Addr;pubusestd::net::Ipv6Addr;implFromStr forIpAddr{typeErr= AddrParseError;fnfrom_str(s:&str)->Result<IpAddr, AddrParseError>{
s.parse().map(|ip: Ipv4Addr|IpAddr::V4(ip)).or_else(|_|{
s.parse().map(|ip: Ipv6Addr|IpAddr::V6(ip))})}}