46 lines
946 B
Rust
46 lines
946 B
Rust
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub struct IPAddrBlocks {
|
|
ips: Vec<IPAddressFamily>
|
|
}
|
|
|
|
|
|
// 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<IPAddressOrRange>),
|
|
}
|
|
|
|
#[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); |