#[derive(Clone, Debug, PartialEq, Eq)] pub struct IPAddrBlocks { ips: Vec } // IP Address Family #[derive(Clone, Debug, PartialEq, Eq)] pub struct IPAddressFamily { pub address_family: Afi, pub ip_address_choice: IPAddressChoice, } #[derive(Debug, Clone, PartialEq, Eq)] pub enum Afi { Ipv4, Ipv6, } #[derive(Debug, Clone, PartialEq, Eq)] pub enum IPAddressChoice { Inherit, AddressOrRange(Vec), } #[derive(Debug, Clone, PartialEq, Eq)] pub enum IPAddressOrRange { AddressPrefix(IPAddressPrefix), AddressRange(IPAddressRange), } #[derive(Debug, Clone, PartialEq, Eq)] pub struct IPAddressPrefix { pub address: IPAddress, pub prefix_length: u8, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct IPAddressRange { pub min: IPAddress, pub max: IPAddress, } #[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)] pub struct IPAddress(u128);