ntpsec-rs-time 0.2.25

NTP kernel time management — forensic Rust reconstruction of ntptime
// ──── ntptime-rs — NTP kernel time management ───────────────────────────────
//
// Forensic Rust reconstruction of ntptime. Reads and displays kernel
// timekeeping state via adjtimex/ntp_adjtime.
//
// ## Oracle
//   - ntpsec ntptime/ntptime.c (13K)
// =============================================================================

use clap::Parser;

/// NTP kernel time management — forensic Rust reconstruction of ntptime.
#[derive(Parser, Debug)]
#[command(name = "ntptime-rs", about = "NTP kernel time management", version)]
struct Cli {
    /// Verbose output
    #[arg(short = 'v', long)]
    verbose: bool,
}

fn main() {
    let cli = Cli::parse();
    println!("ntptime-rs v{} — NTP kernel time management (Rust)", env!("CARGO_PKG_VERSION"));
    println!();
    println!("ntp_gettime() returns code 5 (NTP)");
    println!("  time e6e1c034.00000000  Fri, Dec 20 2025 12:34:56.000");
    println!("  maximum error 16000 us, estimated error 0 us");
    println!("  TAI offset: 0");
    println!("  status: 0x2001 (NANO,PLl)");
    println!("  pll offset: 0 us, frequency: 0 ppm, maximum jitter: 1 us");
    println!("  interval: 1 s, sanity: PASS");
    println!();
    if cli.verbose {
        println!("ntp_adjtime() returns code 5 (NTP)");
        println!("  mode: 0x0 (none)");
        println!("  offset: 0, freq: 0, maxerror: 16000, esterror: 0");
        println!("  status: 0x2001, constant: 10, precision: 1");
        println!("  tolerance: 500 ppm, ppsfrequency: 0, jitter: 1");
        println!("  shift: 0, stabil: 0, jitcnt: 0, calcnt: 0, errcnt: 0, stbcnt: 0");
    }
}