#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum IpAddr {
V4([u8; 4]),
V6([u16; 8]),
}
impl IpAddr {
#[must_use]
pub const fn as_v4(&self) -> Option<&[u8; 4]> {
match self {
Self::V4(addr) => Some(addr),
Self::V6(_) => None,
}
}
#[must_use]
pub const fn as_v6(&self) -> Option<&[u16; 8]> {
match self {
Self::V4(_) => None,
Self::V6(addr) => Some(addr),
}
}
}