diff options
author | Toby Vincent <tobyv@tobyvin.dev> | 2024-01-29 02:22:15 -0600 |
---|---|---|
committer | Toby Vincent <tobyv@tobyvin.dev> | 2024-01-29 02:22:31 -0600 |
commit | d749e1cb17744493c7a9e43e971518c8b12235b7 (patch) | |
tree | f2eacab0d366fb8431d564591a9aad35824425cf /src/lib.rs | |
parent | dcfd85099c9d136afc3f22dcde90583694e3d4f3 (diff) |
feat: reimplement exclude option
Diffstat (limited to 'src/lib.rs')
-rw-r--r-- | src/lib.rs | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -1,6 +1,8 @@ use std::{ + convert::Infallible, fmt::Display, net::{IpAddr, Ipv4Addr, Ipv6Addr}, + str::FromStr, }; pub mod netlink; @@ -12,6 +14,14 @@ pub enum Host { Hostname(String), } +impl FromStr for Host { + type Err = Infallible; + + fn from_str(s: &str) -> Result<Self, Self::Err> { + Ok(IpAddr::from_str(s).map_or_else(|_| s.to_string().into(), Host::from)) + } +} + impl From<IpAddr> for Host { fn from(value: IpAddr) -> Self { match dns_lookup::lookup_addr(&value) { |