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}