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 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).
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 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