From a067a3e3490c245d1a77591a5d17c903a4c24c26 Mon Sep 17 00:00:00 2001 From: Luke Else Date: Mon, 10 Apr 2023 11:13:36 +0100 Subject: [PATCH] Created new errors for CIDR / Subnet mask generation --- src/networking/mod.rs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/networking/mod.rs b/src/networking/mod.rs index 0497185..2e5b9de 100644 --- a/src/networking/mod.rs +++ b/src/networking/mod.rs @@ -1,10 +1,11 @@ use std::{str::FromStr}; use ip::IpAddr; -use self::ip::InvalidIPErr; - pub mod ip; +#[derive(Debug, PartialEq, Eq)] +pub struct InvalidCIDRErr; + #[allow(unused)] pub struct Network { network_address: IpAddr, @@ -13,8 +14,8 @@ pub struct Network { } impl Network { - // pub fn new(given_address: IpAddr, CIDR: u8) -> Network { - // //Generate subnet Mask + // pub fn new(given_address: &IpAddr, CIDR: u8) -> Network { + // } @@ -27,9 +28,9 @@ impl Network { /// /// >> IpAddr::V4(255, 255, 252, 0) /// ``` - pub fn gen_subnet_mask(mut CIDR: u8) -> Result { + pub fn gen_subnet_mask(mut CIDR: u8) -> Result { if CIDR > 32 { - return Err(InvalidIPErr) + return Err(InvalidCIDRErr) } let mut oct: [u8; 4] = [0; 4]; @@ -52,7 +53,6 @@ impl Network { Ok(IpAddr::V4(oct[0], oct[1], oct[2], oct[3])) } //pub fn generate_subnets(self) -> Vec {} - //fn get_net_id(self) -> u8 {} } enum NetworkClassBits { @@ -118,11 +118,11 @@ mod tests { #[test] fn cidr_to_ip_test() { use super::*; - + assert_eq!(Network::gen_subnet_mask(22).unwrap(), IpAddr::V4(255, 255, 252, 0)); assert_eq!(Network::gen_subnet_mask(24).unwrap(), IpAddr::V4(255, 255, 255, 0)); assert_eq!(Network::gen_subnet_mask(0).unwrap(), IpAddr::V4(0, 0, 0, 0)); assert_eq!(Network::gen_subnet_mask(4).unwrap(), IpAddr::V4(240, 0, 0, 0)); - assert_eq!(Network::gen_subnet_mask(35).unwrap_err(), InvalidIPErr); + assert_eq!(Network::gen_subnet_mask(35).unwrap_err(), InvalidCIDRErr); } } \ No newline at end of file