diff --git a/src/common.rs b/src/common.rs index 1e05ed6..ee92984 100644 --- a/src/common.rs +++ b/src/common.rs @@ -51,12 +51,14 @@ pub fn cidr_parts(cidr: &str) -> Result<(&str, Option<&str>), IpNetworkError> { } pub fn parse_prefix(prefix: &str, max: u8) -> Result { - let mask = prefix - .parse::() - .map_err(|_| IpNetworkError::InvalidPrefix)?; - if mask > max { - Err(IpNetworkError::InvalidPrefix) - } else { - Ok(mask) - } + prefix + .parse() + .map_err(|_| IpNetworkError::InvalidPrefix) + .and_then(|mask| { + if mask > max { + Err(IpNetworkError::InvalidPrefix) + } else { + Ok(mask) + } + }) }