inet 0.1.1

This library aids in internet processing.
Documentation
use crate::ip::IPAddress;

/// Represents an IP address with an associated port.
#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug)]
pub struct SocketAddress {
    pub ip: IPAddress,
    pub port: u16,
}

impl ToString for SocketAddress {

    /// ```
    /// use inet::socket::SocketAddress;
    /// use inet::ip::{IPAddress, IPv4Address, IPv6Address};
    ///
    /// let ip: IPAddress = IPAddress::V4(IPv4Address::LOCALHOST);
    /// let s: SocketAddress = SocketAddress{ ip, port: 80 };
    /// assert_eq!(s.to_string(), "127.0.0.1:80");
    ///
    /// let ip: IPAddress = IPAddress::V6(IPv6Address::LOCALHOST);
    /// let s: SocketAddress = SocketAddress{ ip, port: 80 };
    /// assert_eq!(s.to_string(), "[::1]:80");
    /// ```
    fn to_string(&self) -> String {
        match self.ip {
            IPAddress::V4(ip) => format!("{}:{}", ip.to_string(), self.port),
            IPAddress::V6(ip) => format!("[{}]:{}", ip.to_string(), self.port),
        }
    }
}