pub struct InvariantReport {
pub files_total: usize,
pub applier_total: usize,
pub applier_ok: usize,
pub applier_mismatches: Vec<String>,
pub binary_oid_checked: usize,
pub hunks_total: usize,
pub accounting_ok: bool,
pub tree: Option<TreeReport>,
}Fields§
§files_total: usize§applier_total: usizeText files (non-binary, non-submodule) checked byte-exactly.
applier_ok: usize§applier_mismatches: Vec<String>§binary_oid_checked: usizeBinary files verified by oid instead of by reconstruction.
hunks_total: usize§accounting_ok: bool§tree: Option<TreeReport>Invariants 3 and 4. None means pipeline::verify did not run — not
that it ran and passed. Consumers must not read absence as success.
Implementations§
Source§impl InvariantReport
impl InvariantReport
Sourcepub fn fidelity_ok(&self) -> bool
pub fn fidelity_ok(&self) -> bool
Invariants 1 and 2 — everything the read-only pipeline can assert.
This is the gate on emitting a document at all: a bad parse, a dropped hunk or broken accounting all fail here, and all three would make a renderer show the wrong thing.
Sourcepub fn all_ok(&self) -> bool
pub fn all_ok(&self) -> bool
Invariants 1 to 4. False when the tree half never ran, which is
correct rather than a bug: a caller that wants the weaker claim asks
fidelity_ok.
Sourcepub fn applier_exact(&self) -> String
pub fn applier_exact(&self) -> String
“n/n” for the audit block.
Trait Implementations§
Source§impl Clone for InvariantReport
impl Clone for InvariantReport
Source§impl Debug for InvariantReport
impl Debug for InvariantReport
Source§impl Display for InvariantReport
impl Display for InvariantReport
Source§fn fmt(&self, f: &mut Formatter<'_>) -> Result
fn fmt(&self, f: &mut Formatter<'_>) -> Result
The human form of the report: totals and invariants 1-4, one per line.
Formatting, not printing — the engine still writes nothing. The
endpoints are deliberately absent: they are not part of the report (nor
of --json), so a caller that wants a range header prints its own.