Skip to main content

net_wire/ipv6/
address.rs

1use core::fmt;
2
3/// A 128-bit IPv6 address in network-byte order.
4#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
5pub struct Ipv6Address([u8; 16]);
6
7impl Ipv6Address {
8    /// Constructs an address from network-order octets.
9    #[inline]
10    pub const fn new(octets: [u8; 16]) -> Self {
11        Self(octets)
12    }
13
14    /// Returns the address as network-order octets.
15    #[inline]
16    pub const fn octets(self) -> [u8; 16] {
17        self.0
18    }
19}
20
21impl fmt::Display for Ipv6Address {
22    fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
23        fmt::Display::fmt(&core::net::Ipv6Addr::from(self.0), formatter)
24    }
25}