1#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)]
5pub enum NumberOfAddresses {
6 Count(u128),
8 MaxIpv6Addresses,
10}
11
12impl NumberOfAddresses {
13 pub(crate) const fn count_from_distance(d: u128) -> Self {
14 match d.checked_add(1) {
15 Some(c) => Self::Count(c),
16 None => Self::MaxIpv6Addresses,
17 }
18 }
19}
20
21impl core::fmt::Display for NumberOfAddresses {
22 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
23 match self {
24 Self::Count(c) => c.fmt(f),
25 Self::MaxIpv6Addresses => f.write_str("340282366920938463463374607431768211456"),
26 }
27 }
28}