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