ip/any/prefix/
subprefixes.rs

1use super::Prefix;
2use crate::concrete::{self, Ipv4, Ipv6};
3
4/// Iterator returned by
5/// [`Prefix::subprefixes()`][crate::traits::Prefix::subprefixes].
6#[derive(Debug, Clone)]
7pub enum Subprefixes {
8    /// IPv4 variant.
9    Ipv4(concrete::Subprefixes<Ipv4>),
10    /// IPv6 variant.
11    Ipv6(concrete::Subprefixes<Ipv6>),
12}
13
14impl Iterator for Subprefixes {
15    type Item = Prefix;
16
17    fn next(&mut self) -> Option<Self::Item> {
18        match self {
19            Self::Ipv4(iter) => iter.next().map(Self::Item::Ipv4),
20            Self::Ipv6(iter) => iter.next().map(Self::Item::Ipv6),
21        }
22    }
23}