# subnetwork
Returns an iterator that iterates over all subnet IPs.
[](https://github.com/rikonaka/subnetwork-rs/actions/workflows/rust.yml)
## Example 1
```rust
use std::net::Ipv4Addr;
use subnetwork::Ipv4Pool;
fn main() {
let ipv4_pool = Ipv4Pool::from("192.168.1.0/24").unwrap();
for i in ipv4_pool {
println!("{:?}", i);
}
let ipv4 = Ipv4Addr::new(192, 168, 1, 1);
let ret = ipv4_pool.contain(ipv4);
assert_eq!(ret, true);
}
```
## Example 2
```rust
use std::net::Ipv4Addr;
use subnetwork::CrossIpv4Pool;
fn main() {
let start = Ipv4Addr::new(192, 168, 1, 1);
let end = Ipv4Addr::new(192, 168, 3, 254);
let ips = CrossIpv4Pool::new(start, end).unwrap();
for i in ips {
println!("{:?}", i);
}
}
```
## Benchmark
You can see how our performance compares to other similar libraries [here](./benchmark/README.md).