use windows_sys::Win32::Networking::WinSock::{IPPROTO, IPPROTO_ICMP, IPPROTO_ICMPV6, IPPROTO_SCTP, IPPROTO_TCP, IPPROTO_UDP, WSAPROTOCOL_INFOW};
#[repr(transparent)]
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
pub struct So9SockProtocol(pub IPPROTO);
impl So9SockProtocol
{
pub const NONE: Self = Self(0);
pub const ICMPV4: Self = Self(IPPROTO_ICMP);
pub const ICMPV6: Self = Self(IPPROTO_ICMPV6);
pub const TCP: Self = Self(IPPROTO_TCP);
pub const UDP: Self = Self(IPPROTO_UDP);
pub const SCTP: Self = Self(IPPROTO_SCTP);
}
impl From<WSAPROTOCOL_INFOW> for So9SockProtocol
{
fn from(value: WSAPROTOCOL_INFOW) -> Self
{
Self(value.iProtocol)
}
}