socket9 0.1.0-alpha.1

Extended untilities for the networking/unix sockets and raw network sockets
Documentation
use std::net::SocketAddr;

use socket9::{AF_INET, AF_INET6, AF_UNIX, So9SockDomain, address::{So9AddrDomain, So9SocketAddr}, sa_family_t};
use uds_fork::UnixSocketAddr;

#[test]
fn test_addr_1()
{
    let ipv4: SocketAddr = "127.0.0.1:80".parse().unwrap();

    assert_eq!(ipv4.get_addr_domain(), So9SockDomain::IPV4);

    let sa9 = So9SocketAddr::from(&ipv4);

    assert_eq!(sa9.get_sa_fam(), AF_INET as sa_family_t);

    let ipv4_b: SocketAddr = sa9.try_into().unwrap();

    assert_eq!(ipv4, ipv4_b);
}

#[test]
fn test_addr_2()
{
    let ipv6: SocketAddr = "[d969:15c5:fc23:395a:67e3:ab97:ade9:fd24]:80".parse().unwrap();

    assert_eq!(ipv6.get_addr_domain(), So9SockDomain::IPV6);

    let sa9 = So9SocketAddr::from(&ipv6);

    assert_eq!(sa9.get_sa_fam(), AF_INET6 as sa_family_t);

    let ipv6_b: SocketAddr = sa9.try_into().unwrap();

    
    assert_eq!(ipv6, ipv6_b);
}

#[test]
fn test_addr_3()
{
    let unix_path: UnixSocketAddr = UnixSocketAddr::from_path("/tmp/sock.sock").unwrap();

    assert_eq!(unix_path.get_addr_domain(), So9SockDomain::UNIX);

    let sa9 = So9SocketAddr::from(&unix_path);

    assert_eq!(sa9.get_sa_fam(), AF_UNIX as sa_family_t);

    let unix_path_b: UnixSocketAddr = sa9.try_into().unwrap();

    assert_eq!(&unix_path, &unix_path_b);
}