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}