#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum LeapSecMode {
System,
Step,
Slew,
Ignore,
}
#[derive(Debug, Clone, PartialEq)]
pub struct ClockPrecisionConfig { pub precision: f64 }
#[derive(Debug, Clone, PartialEq)]
pub struct CorrTimeRatioConfig { pub ratio: f64 }
#[derive(Debug, Clone, PartialEq)]
pub struct DriftFileConfig { pub path: String, pub interval: Option<u32> }
#[derive(Debug, Clone, PartialEq)]
pub struct FallbackDriftConfig { pub min: i32, pub max: i32 }
#[derive(Debug, Clone, PartialEq)]
pub struct LeapSecTzConfig { pub timezone: String }
#[derive(Debug, Clone, PartialEq)]
pub struct LeapSecListConfig { pub file: String }
#[derive(Debug, Clone, PartialEq)]
pub struct MakeStepConfig { pub threshold: f64, pub limit: i32 }
#[derive(Debug, Clone, PartialEq)]
pub struct MaxChangeConfig { pub offset: f64, pub start: i32, pub ignore: i32 }
#[derive(Debug, Clone, PartialEq)]
pub struct MaxClockErrorConfig { pub error_ppm: f64 }
#[derive(Debug, Clone, PartialEq)]
pub struct MaxDriftConfig { pub drift_ppm: f64 }
#[derive(Debug, Clone, PartialEq)]
pub struct MaxUpdateSkewConfig { pub skew_ppm: f64 }
#[derive(Debug, Clone, PartialEq)]
pub struct MaxSlewRateConfig { pub rate_ppm: f64 }
#[derive(Debug, Clone, PartialEq)]
pub enum TempCompConfig {
Coefficients { file: String, interval: f64, t0: f64, k0: f64, k1: f64, k2: f64 },
PointFile { file: String, interval: f64, points_file: String },
}