pub struct ValidationReport {
pub segments: Vec<SegmentReport>,
pub unparseable_records: usize,
pub cross_checks: Vec<RuleReport>,
pub unparseable_events: usize,
pub session_events: Option<usize>,
pub checkpoint_checks: Vec<RuleReport>,
pub unparseable_checkpoints: usize,
pub checkpoints: Option<usize>,
pub deferred: Vec<String>,
}Fields§
§segments: Vec<SegmentReport>§unparseable_records: usizeBlobs that are not records at all (not JSON objects, or carrying no identity fields).
cross_checks: Vec<RuleReport>Batch 3: SessionLog↔journal cross-verification verdicts (C6/C8). Report-scope, not per-segment: these rules join two evidence planes.
unparseable_events: usizeSessionLog event blobs that were not JSON objects at all. 0 when no session plane
was handed over.
session_events: Option<usize>Some(count) when SessionLog streams were handed over — the total of parseable events
across every stream. None = journal-only validation (batch-1 mode). An explicitly
provided session plane with zero parseable events is evidence-insufficient (exit 2).
checkpoint_checks: Vec<RuleReport>Batch 2: checkpoint↔journal anchoring verdicts (C5a/C5b). Report-scope, not per-segment: these rules join the checkpoint plane to the journal plane.
unparseable_checkpoints: usizeCheckpoint blobs that did not decode at all. 0 when no checkpoint plane was handed
over.
checkpoints: Option<usize>Some(count) when checkpoint blobs were handed over — how many decoded. None = no
checkpoint plane. An explicitly provided checkpoint plane with zero parseable
checkpoints is evidence-insufficient (exit 2), exactly like the other planes.
deferred: Vec<String>Batch-scope limits a green verdict does not cover.
Implementations§
Source§impl ValidationReport
impl ValidationReport
pub fn has_violations(&self) -> bool
Sourcepub fn exit_code(&self) -> i32
pub fn exit_code(&self) -> i32
The CLI contract (P7 §3.2): 0 all green, 1 a violation was proven, 2 the evidence
was insufficient. A proven violation outranks insufficient evidence; degraded hops and
deferred scope never move the code. An explicitly provided SessionLog or checkpoint
plane that yields nothing parseable is insufficient evidence of the same kind as
unparseable records.
Trait Implementations§
Source§impl Clone for ValidationReport
impl Clone for ValidationReport
Source§fn clone(&self) -> ValidationReport
fn clone(&self) -> ValidationReport
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more