mirror of
https://github.com/achanda/ipnetwork.git
synced 2025-06-17 17:28:51 +00:00
Docs update
This commit is contained in:
@ -1,3 +1,5 @@
|
|||||||
|
ipnetwork
|
||||||
|
===
|
||||||
This is a library to work with IPv4 and v6 CIDRs in rust
|
This is a library to work with IPv4 and v6 CIDRs in rust
|
||||||
The IPv4 implementation is stable, IPv6 implementation is not done yet.
|
The IPv4 implementation is stable, IPv6 implementation is not done yet.
|
||||||
|
|
||||||
@ -9,8 +11,7 @@ Run Clippy by doing
|
|||||||
cargo test --features "dev"
|
cargo test --features "dev"
|
||||||
```
|
```
|
||||||
|
|
||||||
Installation
|
### Installation
|
||||||
=============
|
|
||||||
This crate works with Cargo. Assuming you have Rust and Cargo installed, simply check out the source and run tests:
|
This crate works with Cargo. Assuming you have Rust and Cargo installed, simply check out the source and run tests:
|
||||||
```
|
```
|
||||||
git clone https://github.com/achanda/ipnetwork
|
git clone https://github.com/achanda/ipnetwork
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
use std::net::Ipv4Addr;
|
use std::net::Ipv4Addr;
|
||||||
|
|
||||||
|
/// Represents a bunch of errors that can occur while working with a `IpNetwork`
|
||||||
#[derive(Debug,Clone,PartialEq,Eq)]
|
#[derive(Debug,Clone,PartialEq,Eq)]
|
||||||
pub enum IpNetworkError {
|
pub enum IpNetworkError {
|
||||||
InvalidAddr(String),
|
InvalidAddr(String),
|
||||||
|
@ -6,6 +6,7 @@ use common::{IpNetworkError, cidr_parts, parse_prefix, parse_addr};
|
|||||||
|
|
||||||
const IPV4_BITS: u8 = 32;
|
const IPV4_BITS: u8 = 32;
|
||||||
|
|
||||||
|
/// Represents a network range where the IP addresses are of v4
|
||||||
#[derive(Debug,Clone,Copy,Hash,PartialEq,Eq)]
|
#[derive(Debug,Clone,Copy,Hash,PartialEq,Eq)]
|
||||||
pub struct Ipv4Network {
|
pub struct Ipv4Network {
|
||||||
addr: Ipv4Addr,
|
addr: Ipv4Addr,
|
||||||
|
@ -8,6 +8,7 @@ use common::{IpNetworkError, cidr_parts, parse_prefix};
|
|||||||
const IPV6_BITS: u8 = 128;
|
const IPV6_BITS: u8 = 128;
|
||||||
const IPV6_SEGMENT_BITS: u8 = 16;
|
const IPV6_SEGMENT_BITS: u8 = 16;
|
||||||
|
|
||||||
|
/// Represents a network range where the IP addresses are of v6
|
||||||
#[derive(Debug,Clone,Copy,Hash,PartialEq,Eq)]
|
#[derive(Debug,Clone,Copy,Hash,PartialEq,Eq)]
|
||||||
pub struct Ipv6Network {
|
pub struct Ipv6Network {
|
||||||
addr: Ipv6Addr,
|
addr: Ipv6Addr,
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
//! The `ipnetwork` crate provides a set of APIs to work with IP CIDRs in
|
||||||
|
//! Rust. Implementation for IPv4 is more or less stable, IPv6 implementation
|
||||||
|
//! is still WIP.
|
||||||
#![cfg_attr(feature = "dev", feature(plugin))]
|
#![cfg_attr(feature = "dev", feature(plugin))]
|
||||||
#![cfg_attr(feature = "dev", plugin(clippy))]
|
#![cfg_attr(feature = "dev", plugin(clippy))]
|
||||||
#![crate_type = "lib"]
|
#![crate_type = "lib"]
|
||||||
@ -12,7 +15,8 @@ pub use ipv4::{Ipv4Network, ipv4_mask_to_prefix};
|
|||||||
pub use ipv6::{Ipv6Network, ipv6_mask_to_prefix};
|
pub use ipv6::{Ipv6Network, ipv6_mask_to_prefix};
|
||||||
pub use common::IpNetworkError;
|
pub use common::IpNetworkError;
|
||||||
|
|
||||||
// A network
|
/// Represents a generic network range. This type can have two variants:
|
||||||
|
/// the v4 and the v6 case.
|
||||||
#[derive(Debug,Clone,Copy,Hash,PartialEq,Eq)]
|
#[derive(Debug,Clone,Copy,Hash,PartialEq,Eq)]
|
||||||
pub enum IpNetwork {
|
pub enum IpNetwork {
|
||||||
V4(Ipv4Network),
|
V4(Ipv4Network),
|
||||||
|
Reference in New Issue
Block a user