pub struct ChainVerificationReport {
pub rows_checked: u64,
pub chain_break: Option<i64>,
pub signature_failures: Vec<i64>,
}Expand description
Outcome of a verify_chain pass over the signed_events table.
rows_checked counts every row the verifier walked.
chain_break is Some(sequence) when the FIRST detected break
happens — that row’s stored prev_hash does not equal
SHA-256(canonical_chain_bytes(row N-1)), OR the row’s sequence
is not the expected prior + 1 (gap / duplicate / non-monotonic
jump). signature_failures records sequences whose Ed25519
signature did not verify against the supplied key set — the
chain itself may still be intact even if individual signatures
fail (defense-in-depth split).
Fields§
§rows_checked: u64§chain_break: Option<i64>§signature_failures: Vec<i64>Implementations§
Source§impl ChainVerificationReport
impl ChainVerificationReport
Sourcepub fn chain_holds(&self) -> bool
pub fn chain_holds(&self) -> bool
true when the cross-row chain held end-to-end. Per-row
signature failures are surfaced separately because they are a
disjoint property (a chain break is structurally worse than a
signature failure).
Trait Implementations§
Source§impl Clone for ChainVerificationReport
impl Clone for ChainVerificationReport
Source§fn clone(&self) -> ChainVerificationReport
fn clone(&self) -> ChainVerificationReport
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 ChainVerificationReport
impl Debug for ChainVerificationReport
impl Eq for ChainVerificationReport
Source§impl PartialEq for ChainVerificationReport
impl PartialEq for ChainVerificationReport
Source§fn eq(&self, other: &ChainVerificationReport) -> bool
fn eq(&self, other: &ChainVerificationReport) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for ChainVerificationReport
Auto Trait Implementations§
impl Freeze for ChainVerificationReport
impl RefUnwindSafe for ChainVerificationReport
impl Send for ChainVerificationReport
impl Sync for ChainVerificationReport
impl Unpin for ChainVerificationReport
impl UnsafeUnpin for ChainVerificationReport
impl UnwindSafe for ChainVerificationReport
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more