@@ -4,7 +4,7 @@ use std::str::FromStr;
44
55use serde:: { de, Deserialize , Deserializer , Serialize , Serializer } ;
66
7- use common:: { cidr_parts, parse_addr , parse_prefix, IpNetworkError } ;
7+ use common:: { cidr_parts, parse_prefix, IpNetworkError } ;
88
99const IPV4_BITS : u8 = 32 ;
1010
@@ -205,7 +205,8 @@ impl FromStr for Ipv4Network {
205205 type Err = IpNetworkError ;
206206 fn from_str ( s : & str ) -> Result < Ipv4Network , IpNetworkError > {
207207 let ( addr_str, prefix_str) = cidr_parts ( s) ?;
208- let addr = parse_addr ( addr_str) ?;
208+ let addr = Ipv4Addr :: from_str ( addr_str)
209+ . map_err ( |_| IpNetworkError :: InvalidAddr ( addr_str. to_string ( ) ) ) ?;
209210 let prefix = match prefix_str {
210211 Some ( v) => parse_prefix ( v, IPV4_BITS ) ?,
211212 None => IPV4_BITS ,
@@ -274,13 +275,6 @@ mod test {
274275 assert ! ( net. is_err( ) ) ;
275276 }
276277
277- #[ test]
278- fn parse_v4_0bit ( ) {
279- let cidr: Ipv4Network = "0/0" . parse ( ) . unwrap ( ) ;
280- assert_eq ! ( cidr. ip( ) , Ipv4Addr :: new( 0 , 0 , 0 , 0 ) ) ;
281- assert_eq ! ( cidr. prefix( ) , 0 ) ;
282- }
283-
284278 #[ test]
285279 fn parse_v4_24bit ( ) {
286280 let cidr: Ipv4Network = "127.1.0.0/24" . parse ( ) . unwrap ( ) ;
@@ -339,30 +333,6 @@ mod test {
339333 assert_eq ! ( None , cidr) ;
340334 }
341335
342- #[ test]
343- fn size_v4_24bit ( ) {
344- let net: Ipv4Network = "0/24" . parse ( ) . unwrap ( ) ;
345- assert_eq ! ( net. size( ) , 256 ) ;
346- }
347-
348- #[ test]
349- fn size_v4_1bit ( ) {
350- let net: Ipv4Network = "0/31" . parse ( ) . unwrap ( ) ;
351- assert_eq ! ( net. size( ) , 2 ) ;
352- }
353-
354- #[ test]
355- fn size_v4_max ( ) {
356- let net: Ipv4Network = "0/0" . parse ( ) . unwrap ( ) ;
357- assert_eq ! ( net. size( ) , 4_294_967_296 ) ;
358- }
359-
360- #[ test]
361- fn size_v4_min ( ) {
362- let net: Ipv4Network = "0/32" . parse ( ) . unwrap ( ) ;
363- assert_eq ! ( net. size( ) , 1 ) ;
364- }
365-
366336 #[ test]
367337 fn nth_v4 ( ) {
368338 let net = Ipv4Network :: new ( Ipv4Addr :: new ( 127 , 0 , 0 , 0 ) , 24 ) . unwrap ( ) ;
@@ -439,14 +409,6 @@ mod test {
439409 assert_eq ! ( None , iter. next( ) ) ;
440410 }
441411
442- #[ test]
443- fn iterator_v4_tiny ( ) {
444- let cidr: Ipv4Network = "10/32" . parse ( ) . unwrap ( ) ;
445- let mut iter = cidr. iter ( ) ;
446- assert_eq ! ( Ipv4Addr :: new( 10 , 0 , 0 , 0 ) , iter. next( ) . unwrap( ) ) ;
447- assert_eq ! ( None , iter. next( ) ) ;
448- }
449-
450412 // Tests the entire IPv4 space to see if the iterator will stop at the correct place
451413 // and not overflow or wrap around. Ignored since it takes a long time to run.
452414 #[ test]
0 commit comments