1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
//! zdump-rs — a bounded, independent Rust TZif **witness** companion to zic-rs.
//!
//! `zic-rs` is the compiler (tzdb source → TZif). `zdump-rs` is the inspection companion: it reads TZif
//! and renders what it *means* (offset / is_dst / abbreviation) at explicit instants, as deterministic
//! JSON witness rows, so the evidence court has an **independent second reader** to cross-check against
//! reference `zdump`.
//!
//! ## Scope
//! Phase 1 (`T23.zdump-witness.1`):
//! - read TZif v1/v2/v3/v4 (independent reader; no shared code with zic-rs)
//! - evaluate offset/is_dst/abbreviation at explicit UTC instants
//! - emit deterministic JSON witness rows
//!
//! Phase 2 (`T23.zdump-witness.2`):
//! - **interpret the POSIX footer** so instants beyond the last explicit transition are *projected*
//! (offset/is_dst/abbreviation), matching reference `zdump` far-future — `posix` module
//! - **transition listing** over a year window (the `zdump -v` analog) — `Tzif::transitions_in`
//! - **expose the leap-second table** in the listing
//!
//! Phase 3 (`T23.zdump-witness.3`):
//! - **named-zone resolution** via `$TZDIR`/`--tzdir` (use `America/New_York`, not just a path) — `zone`
//! - **`-c lo,hi`** year-cut (the `zdump -c` flag) on the transition listing
//! - **leap-second `23:59:60` rendering** for `right/` zones (TAI wall rendering near leaps) — `leap`
//!
//! ## Explicit NON-claims (guarded as hard as the capability)
//! - NOT a full `zdump` replacement · NOT exact stdout/stderr parity · NOT all flags
//! - NOT locale behaviour · NOT a replacement oracle (reference `zdump` stays the oracle)
//! - NOT civil-time truth
//! - does NOT apply leap-second corrections to the displayed wall time for `right/` zones (the per-type
//! offset/is_dst/abbreviation are reported correctly; the TAI-scale wall rendering near leaps is a
//! tracked Phase-3 refinement)
pub use ;
pub use WitnessRow;
/// The fixed, declared probe-instant set (`--probe-default`): pre-epoch, the 32-bit `time_t` floor/ceiling,
/// a few civil years around the admitted 2026b release, and a far-future (footer-governed) point. Shared by
/// the CLI and the golden test so they cannot drift.
pub const PROBE_DEFAULT: & = &;