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§fn clone(&self) -> InvariantReport
fn clone(&self) -> InvariantReport
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§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.