technitium 0.4.0

Typed async Rust client for the Technitium DNS Server API
Documentation
use serde::{Deserialize, Serialize};

/// Technitium DNS server settings.
///
/// This is a partial representation — the server returns many fields.
/// Unknown fields are captured in `extra`.
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ServerSettings {
    /// DNS server domain name.
    #[serde(default)]
    pub dns_server_domain: Option<String>,
    /// Forwarder addresses.
    #[serde(default)]
    pub forwarders: Option<Vec<String>>,
    /// Whether recursion is enabled.
    #[serde(default)]
    pub enable_recursion: Option<bool>,
    /// Whether DNSSEC validation is enabled.
    #[serde(default)]
    pub dnssec_validation: Option<bool>,
    /// All other settings fields (passthrough).
    #[serde(flatten)]
    pub extra: serde_json::Value,
}