pub use lazydns_macros::{RegisterExecPlugin, RegisterPlugin, ShutdownPlugin};
pub mod dns;
pub mod server;
pub mod plugin;
pub mod plugins;
pub mod utils;
pub mod config;
#[cfg(feature = "log")]
pub use lazylog::{FileLogConfig, LogConfig, RotationPeriod, RotationTrigger, init_logging};
#[cfg(feature = "metrics")]
pub mod metrics;
pub mod error {
use thiserror::Error;
#[derive(Error, Debug)]
pub enum Error {
#[error("DNS protocol error: {0}")]
DnsProtocol(String),
#[error("Configuration error: {0}")]
Config(String),
#[error("Plugin error: {0}")]
Plugin(String),
#[error("IO error: {0}")]
Io(#[from] std::io::Error),
#[error("Error: {0}")]
Other(String),
}
pub type Result<T> = std::result::Result<T, Error>;
}
pub use error::{Error, Result};
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_error_types() {
let _dns_err = Error::DnsProtocol("test error".to_string());
let _config_err = Error::Config("test error".to_string());
let _plugin_err = Error::Plugin("test error".to_string());
}
}