pub struct DrillReport {
pub cases: usize,
pub blobs_present: usize,
pub blobs_erased: usize,
pub sealed_open: usize,
pub sealed_erased: usize,
pub findings: Vec<String>,
pub not_checked: Vec<String>,
}Expand description
What a live drill established, and what it could not look at.
The same shape as AuditReport and
VerifyReport, for the same reason: a pass
that reports only failures describes its coverage by omission, and the
difference between sound and nothing I checked was wrong is the
not_checked list.
Fields§
§cases: usizeCases walked.
blobs_present: usizeBlob references whose bytes are present and hash to their address.
blobs_erased: usizeBlob references answered by a tombstone — retention working, not loss.
sealed_open: usizeSealed states that opened. The plaintext was dropped unread.
sealed_erased: usizeSealed states whose key was deliberately destroyed — erasure working.
findings: Vec<String>What is wrong: bytes missing with no tombstone, bytes altered, or a sealed state that neither opens nor was destroyed.
not_checked: Vec<String>What this pass could not establish, and why.
Implementations§
Source§impl DrillReport
impl DrillReport
Sourcepub fn is_sound(&self) -> bool
pub fn is_sound(&self) -> bool
Whether every check that ran, passed. See Self::not_checked.
Trait Implementations§
Source§impl Clone for DrillReport
impl Clone for DrillReport
Source§impl Debug for DrillReport
impl Debug for DrillReport
impl Eq for DrillReport
Source§impl PartialEq for DrillReport
impl PartialEq for DrillReport
Source§impl Serialize for DrillReport
impl Serialize for DrillReport
impl StructuralPartialEq for DrillReport
Auto Trait Implementations§
impl Freeze for DrillReport
impl RefUnwindSafe for DrillReport
impl Send for DrillReport
impl Sync for DrillReport
impl Unpin for DrillReport
impl UnsafeUnpin for DrillReport
impl UnwindSafe for DrillReport
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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<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