mod async_trust_dns_client;
mod trust_dns_client;
pub use async_trust_dns_client::AsyncTrustDnsClient;
pub use trust_dns_client::TrustDnsClient;
use std::convert::{TryFrom, TryInto};
use crate::records::*;
use trust_dns_proto::rr::{rdata::srv::SRV, record_data::RData};
use rsip::Error;
impl TryFrom<RData> for NaptrEntry {
type Error = Error;
fn try_from(rdata: RData) -> Result<Self, Self::Error> {
match rdata {
RData::NAPTR(entry) => Ok(Self {
order: entry.order(),
preference: entry.preference(),
flags: entry.flags().into(),
services: entry.services().try_into()?,
regexp: entry.regexp().to_vec(),
replacement: entry.replacement().to_string().into(),
}),
_ => Err(Error::Unexpected("Unexpected DNS record, was expecting NAPTR".into())),
}
}
}
impl From<SRV> for SrvEntry {
fn from(srv: SRV) -> Self {
Self {
priority: srv.priority(),
weight: srv.weight(),
port: srv.port().into(),
target: srv.target().to_string().into(),
}
}
}