use thiserror::Error;
use super::config::DnsConfigError;
#[derive(Debug, Error, PartialEq, Eq)]
pub enum TcpEndpointError {
#[error("not a tcp endpoint: {0}")]
NotTcp(String),
#[error("invalid tcp endpoint syntax: {0}")]
Syntax(String),
#[error("tcp host resolved to no addresses")]
NoAddresses,
}
#[derive(Debug, Error)]
pub enum DnsError {
#[error(transparent)]
Config(#[from] DnsConfigError),
#[error(transparent)]
Tcp(#[from] TcpEndpointError),
#[error("hickory resolver: {0}")]
Hickory(String),
#[error("DNS runtime not installed; call install_from_env() at startup")]
NotInstalled,
#[error("reqwest client: {0}")]
HttpClient(#[from] reqwest::Error),
}