diff --git a/src/common.rs b/src/common.rs index 466df22..1e05ed6 100644 --- a/src/common.rs +++ b/src/common.rs @@ -36,17 +36,17 @@ pub fn cidr_parts(cidr: &str) -> Result<(&str, Option<&str>), IpNetworkError> { let (ip, prefix) = cidr.split_at(sep); // Error if cidr has multiple slashes if prefix[1..].find('/').is_some() { - return Err(IpNetworkError::InvalidCidrFormat(format!( + Err(IpNetworkError::InvalidCidrFormat(format!( "CIDR must contain a single '/': {}", cidr - ))); + ))) } else { // Handle the case when cidr has exactly one slash - return Ok((ip, Some(&prefix[1..]))); + Ok((ip, Some(&prefix[1..]))) } } else { // Handle the case when cidr does not have a slash - return Ok((cidr, None)); + Ok((cidr, None)) } } diff --git a/src/ipv4.rs b/src/ipv4.rs index 21c04bd..51fb7e5 100644 --- a/src/ipv4.rs +++ b/src/ipv4.rs @@ -61,7 +61,7 @@ impl Ipv4Network { /// Returns an iterator over `Ipv4Network`. Each call to `next` will return the next /// `Ipv4Addr` in the given network. `None` will be returned when there are no more /// addresses. - pub fn iter(&self) -> Ipv4NetworkIterator { + pub fn iter(self) -> Ipv4NetworkIterator { let start = u32::from(self.network()); let end = start + (self.size() - 1); Ipv4NetworkIterator { @@ -70,11 +70,11 @@ impl Ipv4Network { } } - pub fn ip(&self) -> Ipv4Addr { + pub fn ip(self) -> Ipv4Addr { self.addr } - pub fn prefix(&self) -> u8 { + pub fn prefix(self) -> u8 { self.prefix } @@ -109,7 +109,7 @@ impl Ipv4Network { /// let net: Ipv4Network = "127.0.0.0/16".parse().unwrap(); /// assert_eq!(net.mask(), Ipv4Addr::new(255, 255, 0, 0)); /// ``` - pub fn mask(&self) -> Ipv4Addr { + pub fn mask(self) -> Ipv4Addr { let prefix = self.prefix; let mask = !(0xffff_ffff as u64 >> prefix) as u32; Ipv4Addr::from(mask) @@ -127,7 +127,7 @@ impl Ipv4Network { /// let net: Ipv4Network = "10.1.9.32/16".parse().unwrap(); /// assert_eq!(net.network(), Ipv4Addr::new(10, 1, 0, 0)); /// ``` - pub fn network(&self) -> Ipv4Addr { + pub fn network(self) -> Ipv4Addr { let mask = u32::from(self.mask()); let ip = u32::from(self.addr) & mask; Ipv4Addr::from(ip) @@ -145,7 +145,7 @@ impl Ipv4Network { /// let net: Ipv4Network = "10.9.0.32/16".parse().unwrap(); /// assert_eq!(net.broadcast(), Ipv4Addr::new(10, 9, 255, 255)); /// ``` - pub fn broadcast(&self) -> Ipv4Addr { + pub fn broadcast(self) -> Ipv4Addr { let mask = u32::from(self.mask()); let broadcast = u32::from(self.addr) | !mask; Ipv4Addr::from(broadcast) @@ -163,7 +163,7 @@ impl Ipv4Network { /// assert!(net.contains(Ipv4Addr::new(127, 0, 0, 70))); /// assert!(!net.contains(Ipv4Addr::new(127, 0, 1, 70))); /// ``` - pub fn contains(&self, ip: Ipv4Addr) -> bool { + pub fn contains(self, ip: Ipv4Addr) -> bool { let mask = !(0xffff_ffff as u64 >> self.prefix) as u32; let net = u32::from(self.addr) & mask; (u32::from(ip) & mask) == net @@ -183,7 +183,7 @@ impl Ipv4Network { /// let tinynet: Ipv4Network = "0.0.0.0/32".parse().unwrap(); /// assert_eq!(tinynet.size(), 1); /// ``` - pub fn size(&self) -> u32 { + pub fn size(self) -> u32 { let host_bits = u32::from(IPV4_BITS - self.prefix); (2 as u32).pow(host_bits) } @@ -205,7 +205,7 @@ impl Ipv4Network { /// let net2: Ipv4Network = "10.0.0.0/16".parse().unwrap(); /// assert_eq!(net2.nth(256).unwrap(), Ipv4Addr::new(10, 0, 1, 0)); /// ``` - pub fn nth(&self, n: u32) -> Option { + pub fn nth(self, n: u32) -> Option { if n < self.size() { let net = u32::from(self.network()); Some(Ipv4Addr::from(net + n)) diff --git a/src/ipv6.rs b/src/ipv6.rs index 3262eaa..521c119 100644 --- a/src/ipv6.rs +++ b/src/ipv6.rs @@ -72,7 +72,7 @@ impl Ipv6Network { Ipv6NetworkIterator { next: Some(start), - end: end, + end, } }