Skip to main content

ValidationReport

Struct ValidationReport 

Source
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: usize

Blobs 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: usize

SessionLog 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: usize

Checkpoint 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

Source

pub fn has_violations(&self) -> bool

Source

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

Source§

fn clone(&self) -> ValidationReport

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ValidationReport

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for ValidationReport

Source§

impl PartialEq for ValidationReport

Source§

fn eq(&self, other: &ValidationReport) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for ValidationReport

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for ValidationReport

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.