Skip to content

Commit c3af07d

Browse files
authored
Impl From<Ipv4Addr, Ipv6Addr> for IpNetwork (#218)
1 parent 35977ad commit c3af07d

1 file changed

Lines changed: 20 additions & 3 deletions

File tree

src/lib.rs

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,12 @@
88
unused_import_braces
99
)]
1010

11-
use std::{convert::TryFrom, fmt, net::IpAddr, str::FromStr};
11+
use std::{
12+
convert::TryFrom,
13+
fmt,
14+
net::{IpAddr, Ipv4Addr, Ipv6Addr},
15+
str::FromStr,
16+
};
1217

1318
mod error;
1419
mod ipv4;
@@ -377,11 +382,23 @@ impl From<Ipv6Network> for IpNetwork {
377382
}
378383
}
379384

385+
impl From<Ipv4Addr> for IpNetwork {
386+
fn from(addr: Ipv4Addr) -> IpNetwork {
387+
IpNetwork::V4(Ipv4Network::from(addr))
388+
}
389+
}
390+
391+
impl From<Ipv6Addr> for IpNetwork {
392+
fn from(addr: Ipv6Addr) -> IpNetwork {
393+
IpNetwork::V6(Ipv6Network::from(addr))
394+
}
395+
}
396+
380397
impl From<IpAddr> for IpNetwork {
381398
fn from(addr: IpAddr) -> IpNetwork {
382399
match addr {
383-
IpAddr::V4(a) => IpNetwork::V4(Ipv4Network::from(a)),
384-
IpAddr::V6(a) => IpNetwork::V6(Ipv6Network::from(a)),
400+
IpAddr::V4(a) => IpNetwork::from(a),
401+
IpAddr::V6(a) => IpNetwork::from(a),
385402
}
386403
}
387404
}

0 commit comments

Comments
 (0)