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 has_violations_for(&self, operation_id: &str) -> bool
pub fn has_violations_for(&self, operation_id: &str) -> bool
Whether a selected operation has a proven rule violation. Cross-plane checks are report-scoped and therefore still count; segment checks are narrowed to the requested operation so a multi-operation evidence bundle cannot make an unrelated operation red.
Sourcepub fn for_operation(&self, operation_id: &str) -> Self
pub fn for_operation(&self, operation_id: &str) -> Self
Keep report-scope checks while narrowing the journal segments to one operation for a host command. The source evidence is still represented by the counts and cross-plane checks.
Sourcepub fn has_insufficient_evidence(&self) -> bool
pub fn has_insufficient_evidence(&self) -> bool
Evidence-plane parse failures that make a report insufficient rather than contradictory.
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