chrony-confile 0.1.0

A full-featured Rust library for parsing, editing, validating, and serializing chrony configuration files
Documentation
//! NTP server configuration types.
//!
//! These directives configure chrony's NTP server role: bind addresses, NTS settings,
//! rate limiting, broadcast, and the NTP port.

use crate::values::*;

#[derive(Debug, Clone, PartialEq)]
pub struct BindAddressConfig { pub address: String }

#[derive(Debug, Clone, PartialEq)]
pub struct BindDeviceConfig { pub interface: String }

#[derive(Debug, Clone, PartialEq)]
pub struct ClientLogLimitConfig { pub limit: ClientLogSize }

#[derive(Debug, Clone, PartialEq)]
pub struct NtpSignDSocketConfig { pub directory: String }

#[derive(Debug, Clone, PartialEq)]
pub struct NtsPortConfig { pub port: UdpPort }

#[derive(Debug, Clone, PartialEq)]
pub struct NtsServerCertConfig { pub file: String }

#[derive(Debug, Clone, PartialEq)]
pub struct NtsServerKeyConfig { pub file: String }

#[derive(Debug, Clone, PartialEq)]
pub struct NtsProcessesConfig { pub processes: NtsProcesses }

#[derive(Debug, Clone, PartialEq)]
pub struct MaxNtsConnectionsConfig { pub connections: u32 }

#[derive(Debug, Clone, PartialEq)]
pub struct NtsNtpServerConfig { pub hostname: String }

#[derive(Debug, Clone, PartialEq)]
pub struct NtsRotateConfig { pub interval: u32 }

#[derive(Debug, Clone, PartialEq)]
pub struct PortConfig { pub port: UdpPort }

#[derive(Debug, Clone, PartialEq)]
pub struct CmdRateLimitConfig { pub interval: i32, pub burst: i32, pub leak: i32 }

impl Default for CmdRateLimitConfig {
    fn default() -> Self { Self { interval: -4, burst: 8, leak: 2 } }
}