#![warn(
clippy::default_trait_access,
clippy::dbg_macro,
clippy::print_stdout,
clippy::unimplemented,
clippy::use_self,
missing_copy_implementations,
non_snake_case,
non_upper_case_globals,
rust_2018_idioms,
unreachable_pub
)]
#![allow(
clippy::single_component_path_imports,
clippy::upper_case_acronyms, // can be removed on a major release boundary
)]
#![recursion_limit = "2048"]
#![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))]
#[cfg(feature = "blocklist")]
pub use crate::store::blocklist;
pub use hickory_proto as proto;
#[cfg(feature = "recursor")]
pub use hickory_recursor as recursor;
#[cfg(any(feature = "resolver", feature = "recursor"))]
pub use hickory_resolver as resolver;
mod access;
pub mod authority;
mod error;
pub use error::{ConfigError, ConfigErrorKind, PersistenceError, PersistenceErrorKind};
pub mod server;
pub mod store;
pub use self::server::ServerFuture;
#[cfg(feature = "__dnssec")]
pub mod dnssec {
use crate::proto::dnssec::Nsec3HashAlgorithm;
use serde::Deserialize;
use std::sync::Arc;
#[derive(Debug, Deserialize, Clone, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
pub enum NxProofKind {
Nsec,
Nsec3 {
#[serde(default)]
algorithm: Nsec3HashAlgorithm,
#[serde(default = "default_salt")]
salt: Arc<[u8]>,
#[serde(default)]
iterations: u16,
#[serde(default)]
opt_out: bool,
},
}
fn default_salt() -> Arc<[u8]> {
Arc::new([])
}
}
pub fn version() -> &'static str {
env!("CARGO_PKG_VERSION")
}