mirror of
https://github.com/icewind1991/warp-real-ip.git
synced 2026-06-03 18:54:06 +02:00
Converting it to impl FromIterator as well... I was way too tired.
This commit is contained in:
parent
c819a9a85c
commit
d3fdbc8052
1 changed files with 13 additions and 12 deletions
25
src/lib.rs
25
src/lib.rs
|
|
@ -18,27 +18,28 @@ impl IpNetworks {
|
||||||
pub fn contains(&self, addr: &IpAddr) -> bool {
|
pub fn contains(&self, addr: &IpAddr) -> bool {
|
||||||
self.networks.iter().any(|&network| network.contains(*addr))
|
self.networks.iter().any(|&network| network.contains(*addr))
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Special constructor that builds IpNetwork from an iterator of IP addresses.
|
|
||||||
pub fn from_ipaddr_iter<'a, T: Iterator<Item = &'a IpAddr>>(addrs: T) -> Self {
|
|
||||||
Self::from_iter(addrs.map(|&addr| -> IpNetwork {
|
|
||||||
match addr {
|
|
||||||
IpAddr::V4(addr) => Ipv4Network::from(addr).into(),
|
|
||||||
IpAddr::V6(addr) => Ipv6Network::from(addr).into(),
|
|
||||||
}
|
|
||||||
}))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<Vec<IpAddr>> for IpNetworks {
|
impl From<Vec<IpAddr>> for IpNetworks {
|
||||||
fn from(addrs: Vec<IpAddr>) -> Self {
|
fn from(addrs: Vec<IpAddr>) -> Self {
|
||||||
Self::from_ipaddr_iter(addrs.iter())
|
Self::from_iter(addrs.iter())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<&Vec<IpAddr>> for IpNetworks {
|
impl From<&Vec<IpAddr>> for IpNetworks {
|
||||||
fn from(addrs: &Vec<IpAddr>) -> Self {
|
fn from(addrs: &Vec<IpAddr>) -> Self {
|
||||||
Self::from_ipaddr_iter(addrs.iter())
|
Self::from_iter(addrs.iter())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<'a> FromIterator<&'a IpAddr> for IpNetworks {
|
||||||
|
fn from_iter<T: IntoIterator<Item = &'a IpAddr>>(addrs: T) -> Self {
|
||||||
|
Self::from_iter(addrs.into_iter().map(|&addr| -> IpNetwork {
|
||||||
|
match addr {
|
||||||
|
IpAddr::V4(addr) => Ipv4Network::from(addr).into(),
|
||||||
|
IpAddr::V6(addr) => Ipv6Network::from(addr).into(),
|
||||||
|
}
|
||||||
|
}))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue