# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
name = "ipnet"
version = "2.4.0"
authors = ["Kris Price <kris@krisprice.nz>"]
description = "Provides types and useful methods for working with IPv4 and IPv6 network addresses, commonly called IP prefixes. The new `IpNet`, `Ipv4Net`, and `Ipv6Net` types build on the existing `IpAddr`, `Ipv4Addr`, and `Ipv6Addr` types already provided in Rust's standard library and align to their design to stay consistent. The module also provides useful traits that extend `Ipv4Addr` and `Ipv6Addr` with methods for `Add`, `Sub`, `BitAnd`, and `BitOr` operations. The module only uses stable feature so it is guaranteed to compile using the stable toolchain."
documentation = "https://docs.rs/ipnet"
readme = "README.md"
keywords = ["IP", "CIDR", "network", "prefix", "subnet"]
categories = ["network-programming"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/krisprice/ipnet"
[dependencies.schemars]
version = "0.8"
optional = true

[dependencies.serde]
version = "1"
features = ["derive"]
optional = true
package = "serde"
[dev-dependencies.serde_test]
version = "1"

[features]
default = []
json = ["serde", "schemars"]
[badges.travis-ci]
repository = "krisprice/ipnet"
