pub struct AuditVerification {
pub chain: VerifyOutcome,
pub events: VerifyOutcome,
pub binding: BindingOutcome,
pub attribution: Option<AttributionCensus>,
}Expand description
Everything sysknife audit verify checks, in one value.
Three independent questions, deliberately not collapsed into one enum: is the authorisation record intact, is the approval record intact, and do the two still agree. Collapsing them would let a clean transaction chain mask a tampered approval trail in the summary line.
Fields§
§chain: VerifyOutcome§events: VerifyOutcome§binding: BindingOutcome§attribution: Option<AttributionCensus>How many rows can name the account that acted, and why the rest cannot.
Reported separately because Intact alone would be true and misleading: a
host where every connection failed attribution produces a chain that
verifies perfectly and answers “who acted” with nobody. The verdict is
about tampering; this census is about how much the trail can tell you.
None when the store could not be read at all, so no census was taken: a
missing database, an unopenable one, an absent key. A readable but empty
store is Some, with every count zero.
Deliberately not a census of zero rows for the unreadable case: “nothing is known about attribution” and “the chain holds no rows” are different claims, and a zero that means the first reads as the second, which is the exact confusion this census exists to end.
Implementations§
Trait Implementations§
Source§impl Clone for AuditVerification
impl Clone for AuditVerification
Source§fn clone(&self) -> AuditVerification
fn clone(&self) -> AuditVerification
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 AuditVerification
impl Debug for AuditVerification
impl Eq for AuditVerification
Source§impl PartialEq for AuditVerification
impl PartialEq for AuditVerification
impl StructuralPartialEq for AuditVerification
Auto Trait Implementations§
impl Freeze for AuditVerification
impl RefUnwindSafe for AuditVerification
impl Send for AuditVerification
impl Sync for AuditVerification
impl Unpin for AuditVerification
impl UnsafeUnpin for AuditVerification
impl UnwindSafe for AuditVerification
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§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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