diff --git a/shared/src/types.rs b/shared/src/types.rs index db33c77..f23766d 100644 --- a/shared/src/types.rs +++ b/shared/src/types.rs @@ -19,16 +19,14 @@ pub struct Interface { } impl FromStr for Interface { - type Err = String; + type Err = InvalidInterfaceName; fn from_str(name: &str) -> Result { if !Hostname::is_valid(name) { - return Err("interface name is not a valid hostname".into()); + Err(InvalidInterfaceName::InvalidChars) + } else { + Ok(Self { name: name.parse()? }) } - let name = name - .parse() - .map_err(|e: InvalidInterfaceName| e.to_string())?; - Ok(Self { name }) } }