diff --git a/src/ipv4.rs b/src/ipv4.rs index eb81a5d..d9b1db2 100644 --- a/src/ipv4.rs +++ b/src/ipv4.rs @@ -64,7 +64,10 @@ impl Ipv4Network { pub fn iter(&self) -> Ipv4NetworkIterator { let start = u32::from(self.network()); let end = start + (self.size() - 1); - Ipv4NetworkIterator { next: Some(start), end } + Ipv4NetworkIterator { + next: Some(start), + end, + } } pub fn ip(&self) -> Ipv4Addr { @@ -244,7 +247,7 @@ impl FromStr for Ipv4Network { } else { parse_prefix(v, IPV4_BITS)? } - }, + } None => IPV4_BITS, }; Ipv4Network::new(addr, prefix) @@ -484,8 +487,11 @@ mod test { } #[test] - fn parse_netmask_broken() { - "192.168.1.0/255.0.255.0".parse::().unwrap_err(); + fn parse_netmask_broken_v4() { + assert_eq!( + "192.168.1.0/255.0.255.0".parse::(), + Err(IpNetworkError::InvalidPrefix) + ); } #[test] @@ -647,6 +653,9 @@ mod test { let high_addrs: Vec = high.iter().collect(); assert_eq!(256, high_addrs.len()); assert_eq!("255.255.255.0".parse::().unwrap(), high_addrs[0]); - assert_eq!("255.255.255.255".parse::().unwrap(), high_addrs[255]); + assert_eq!( + "255.255.255.255".parse::().unwrap(), + high_addrs[255] + ); } } diff --git a/src/ipv6.rs b/src/ipv6.rs index f0fe78f..129edab 100644 --- a/src/ipv6.rs +++ b/src/ipv6.rs @@ -309,6 +309,14 @@ mod test { assert_eq!(cidr.prefix(), 24); } + #[test] + fn parse_netmask_broken_v6() { + assert_eq!( + "FF01:0:0:17:0:0:0:2/255.255.255.0".parse::(), + Err(IpNetworkError::InvalidPrefix) + ); + } + #[test] fn create_v6_invalid_prefix() { let cidr = Ipv6Network::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 129); @@ -597,7 +605,9 @@ mod test { let low_addrs: Vec = low.iter().collect(); assert_eq!(256, low_addrs.len()); - let high: Ipv6Network = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ff00/120".parse().unwrap(); + let high: Ipv6Network = "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ff00/120" + .parse() + .unwrap(); let high_addrs: Vec = high.iter().collect(); assert_eq!(256, high_addrs.len()); } diff --git a/src/lib.rs b/src/lib.rs index a1126ce..61fe347 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -13,10 +13,10 @@ mod ipv4; mod ipv6; pub use crate::common::IpNetworkError; -pub use crate::ipv4::{ipv4_mask_to_prefix, Ipv4Network}; -pub use crate::ipv6::{ipv6_mask_to_prefix, Ipv6Network}; use crate::ipv4::Ipv4NetworkIterator; +pub use crate::ipv4::{ipv4_mask_to_prefix, Ipv4Network}; use crate::ipv6::Ipv6NetworkIterator; +pub use crate::ipv6::{ipv6_mask_to_prefix, Ipv6Network}; /// Represents a generic network range. This type can have two variants: /// the v4 and the v6 case.