mirror of
https://github.com/achanda/ipnetwork.git
synced 2025-06-16 16:58:50 +00:00
Simplify API
This commit is contained in:
35
src/lib.rs
35
src/lib.rs
@ -40,17 +40,14 @@ impl Ipv4Network {
|
|||||||
!(0xffffffff >> prefix)
|
!(0xffffffff >> prefix)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn mask(&self) -> Ipv4Addr {
|
pub fn mask(&self) -> (Ipv4Addr, u32) {
|
||||||
let mask = self.mask_int();
|
let prefix = self.prefix;
|
||||||
Ipv4Addr::from(mask)
|
let mask = !(0xffffffff >> prefix);
|
||||||
|
return (Ipv4Addr::from(mask), mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn network_int(&self) -> u32 {
|
pub fn network(&self) -> (Ipv4Addr, u32) {
|
||||||
u32::from(self.addr)
|
return (self.addr, u32::from(self.addr));
|
||||||
}
|
|
||||||
|
|
||||||
pub fn network(&self) -> Ipv4Addr {
|
|
||||||
self.addr
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -120,27 +117,19 @@ mod test {
|
|||||||
assert_eq!(cidr.prefix(), 24);
|
assert_eq!(cidr.prefix(), 24);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn mask_int_v4() {
|
|
||||||
let cidr = Ipv4Network::new(Ipv4Addr::new(74, 125, 227, 0), 29);
|
|
||||||
assert_eq!(cidr.mask_int(), 4294967288);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn mask_v4() {
|
fn mask_v4() {
|
||||||
let cidr = Ipv4Network::new(Ipv4Addr::new(74, 125, 227, 0), 29);
|
let cidr = Ipv4Network::new(Ipv4Addr::new(74, 125, 227, 0), 29);
|
||||||
assert_eq!(cidr.mask(), Ipv4Addr::new(255, 255, 255, 248));
|
let (ip, int) = cidr.mask();
|
||||||
}
|
assert_eq!(ip, Ipv4Addr::new(255, 255, 255, 248));
|
||||||
|
assert_eq!(int, 4294967288);
|
||||||
#[test]
|
|
||||||
fn network_int_v4() {
|
|
||||||
let cidr = Ipv4Network::new(Ipv4Addr::new(74, 125, 227, 0), 25);
|
|
||||||
assert_eq!(cidr.network_int(), 1249764096);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn network_v4() {
|
fn network_v4() {
|
||||||
let cidr = Ipv4Network::new(Ipv4Addr::new(74, 125, 227, 0), 25);
|
let cidr = Ipv4Network::new(Ipv4Addr::new(74, 125, 227, 0), 25);
|
||||||
assert_eq!(cidr.network(), Ipv4Addr::new(74, 125, 227, 0));
|
let (ip, int) = cidr.network();
|
||||||
|
assert_eq!(ip, Ipv4Addr::new(74, 125, 227, 0));
|
||||||
|
assert_eq!(int, 1249764096);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user