mirror of
https://github.com/achanda/ipnetwork.git
synced 2025-06-14 00:12:01 +00:00
fix for 0.0.0.0/0 network (#199)
This commit is contained in:
@ -166,7 +166,9 @@ impl Ipv4Network {
|
||||
/// ```
|
||||
pub fn mask(&self) -> Ipv4Addr {
|
||||
debug_assert!(self.prefix <= 32);
|
||||
|
||||
if self.prefix == 0 {
|
||||
return Ipv4Addr::new(0, 0, 0, 0);
|
||||
}
|
||||
let mask = u32::MAX << (IPV4_BITS - self.prefix);
|
||||
Ipv4Addr::from(mask)
|
||||
}
|
||||
@ -244,6 +246,9 @@ impl Ipv4Network {
|
||||
/// ```
|
||||
pub fn size(self) -> u32 {
|
||||
debug_assert!(self.prefix <= 32);
|
||||
if self.prefix == 0 {
|
||||
return u32::MAX;
|
||||
}
|
||||
1 << (IPV4_BITS - self.prefix)
|
||||
}
|
||||
|
||||
|
@ -82,4 +82,12 @@ mod tests {
|
||||
panic!("{}", s);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#[test]
|
||||
fn test_ipnetwork_size_with_prefix_0() {
|
||||
let network: Ipv4Network = "0.0.0.0/0".parse().unwrap();
|
||||
let size = network.size();
|
||||
assert_eq!(size, u32::MAX);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user