mirror of
https://github.com/EasyTier/EasyTier.git
synced 2026-08-07 04:59:49 +00:00
utils: add From<&NameServerAddr> for Url
This commit is contained in:
@@ -49,12 +49,18 @@ pub struct NameServerAddr {
|
||||
addr: SocketAddr,
|
||||
}
|
||||
|
||||
impl From<NameServerAddr> for NameServerConfig {
|
||||
fn from(value: NameServerAddr) -> Self {
|
||||
impl From<&NameServerAddr> for NameServerConfig {
|
||||
fn from(value: &NameServerAddr) -> Self {
|
||||
Self::new(value.addr, value.protocol)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<&NameServerAddr> for Url {
|
||||
fn from(value: &NameServerAddr) -> Self {
|
||||
Url::parse(&format!("{}://{}", value.protocol, value.addr)).unwrap()
|
||||
}
|
||||
}
|
||||
|
||||
impl TryFrom<Url> for NameServerAddr {
|
||||
type Error = Error;
|
||||
|
||||
@@ -101,6 +107,6 @@ impl FromStr for NameServerAddr {
|
||||
|
||||
impl Display for NameServerAddr {
|
||||
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
|
||||
write!(f, "{}://{}", self.protocol, self.addr)
|
||||
f.write_str(Url::from(self).as_str())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -200,8 +200,10 @@ impl Zone {
|
||||
A: AsRef<str>,
|
||||
{
|
||||
let name_servers = forwarders
|
||||
.into_iter()
|
||||
.map(|s| s.as_ref().parse::<NameServerAddr>().map(Into::into))
|
||||
.map(|f| {
|
||||
let addr: NameServerAddr = f.as_ref().parse()?;
|
||||
Ok((&addr).into())
|
||||
})
|
||||
.collect::<anyhow::Result<Vec<_>>>()?
|
||||
.into();
|
||||
self.forward = Some(ForwardConfig {
|
||||
|
||||
Reference in New Issue
Block a user