pub struct StructuralReport {
pub tzdb_version: Option<String>,
pub reference_zic: String,
pub zones: Vec<ZoneShape>,
pub errors: Vec<ZoneError>,
pub timecnt_delta_total: i64,
}Expand description
The complete structural-parity inventory for one source file.
Fields§
§tzdb_version: Option<String>§reference_zic: String§zones: Vec<ZoneShape>Per-zone comparisons, sorted by name.
errors: Vec<ZoneError>Zones skipped because one side errored, sorted by name.
timecnt_delta_total: i64Net extra explicit transitions zic-rs emits over reference zic (Σ over slim/fat zones;
negative would mean reference is fatter). A pure measure of the slim/fat gap.
Implementations§
Source§impl StructuralReport
impl StructuralReport
Sourcepub fn class_counts(&self) -> BTreeMap<ParityClass, usize>
pub fn class_counts(&self) -> BTreeMap<ParityClass, usize>
Count of zones in each class, in the taxonomy’s canonical order.
pub fn zones_compared(&self) -> usize
Zones whose behaviour-relevant emitted structure — the TZif version byte and the POSIX
footer — matches reference zic exactly. Computed directly (not by class) so a zone
that is mixed only on benign dimensions (slim/fat timecnt + charcnt packing) still
counts as version+footer-clean. This is the honest “structurally drop-in modulo slim/fat +
abbreviation packing” count.