ip_network 0.2.3

IPv4 and IPv6 network structs.
Documentation

ip_network

IPv4 and IPv6 network structs.

Build Status Coverage Status Crates.io

Usage

Add this to your Cargo.toml:

[dependencies]
ip_network = "0.2"

this to your crate root:

extern crate ip_network;

and then you can use it like this:

use std::net::Ipv4Addr;
use ip_network::Ipv4Network;

let ip_network = Ipv4Network::from(Ipv4Addr::new(192, 168, 0, 0), 16).unwrap();
assert_eq!(format!("{}", ip_network), "192.168.0.0/16");

Minimal required version of Rust compiler is 1.26 (because of support u128 data type), for older compiler you can use 0.1.X versions.

Serde support

To enable serialization, just add serde feature to package in Cargo.toml:

[dependencies]
ip_network = { version = "0.2", features = ["serde"] }

Postgres support

To enable support for postgres crate CIDR type, just add postgres feature to package in Cargo.toml:

[dependencies]
ip_network = { version = "0.2", features = ["postgres"] }

Diesel support

To enable support for diesel CIDR type for PostgreSQL, just add diesel feature to package in Cargo.toml:

[dependencies]
ip_network = { version = "0.2", features = ["diesel"] }

You can then use ip_network::diesel_support::PqCidrExtensionMethods trait for CIDR operators support.