nautalid 0.1.0

Scratch container substrate — TLS 1.3 HTTP/2+3 kernel, LID/AetherDB, optional filter bus (GPL-3.0-or-later).
//! DNS and TCP endpoint errors.

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),
}