#[non_exhaustive]pub struct BlockVerifyReport {
pub sst_files_scanned: usize,
pub blocks_scanned: usize,
pub errors: Vec<BlockVerifyError>,
pub warnings: Vec<BlockVerifyWarning>,
pub incomplete: bool,
}Expand description
Aggregated result of a per-block scrub run.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.sst_files_scanned: usizeNumber of SST table files visited (one per scan).
blocks_scanned: usizeTotal blocks successfully header-read across all SSTs. Includes blocks where the data checksum subsequently failed.
errors: Vec<BlockVerifyError>Per-block errors collected during the scan. The scan always runs to completion across all SSTs even if individual blocks or whole files are corrupt.
warnings: Vec<BlockVerifyWarning>Non-fatal findings: data verified, but ECC could not be checked for
some tables (unrecognized scheme — recompaction recommended). Distinct
from errors: warnings do NOT make Self::is_ok false.
incomplete: boolSet when the scan could NOT walk some SST-block sections — an unrecognized
ECC descriptor makes those blocks’ parity-trailer length underivable, so
the walk skips them (including the DATA blocks) entirely. A report with no
errors but this flag set has verified LESS than the whole file, so it is
NOT a clean verdict: Self::is_ok returns false. (The data may still
be readable through the live point-read path, which frames blocks by
data_length; recompaction re-stamps the SST under a supported scheme.)
Implementations§
Source§impl BlockVerifyReport
impl BlockVerifyReport
Sourcepub fn is_ok(&self) -> bool
pub fn is_ok(&self) -> bool
true only if every SST section was walked AND every block verified
clean. A parity-unverifiable WARNING (whose blocks were still walked and
payload-checksummed) does not make this false, but a real error
(errors) or an INCOMPLETE walk that skipped sections
(Self::incomplete, e.g. an unrecognized ECC descriptor) does — a
skipped section was never verified, so reporting it clean would be a false
success.
Sourcepub fn has_warnings(&self) -> bool
pub fn has_warnings(&self) -> bool
true if the scrub produced any non-fatal warning.
Trait Implementations§
Source§impl Debug for BlockVerifyReport
impl Debug for BlockVerifyReport
Auto Trait Implementations§
impl Freeze for BlockVerifyReport
impl RefUnwindSafe for BlockVerifyReport
impl Send for BlockVerifyReport
impl Sync for BlockVerifyReport
impl Unpin for BlockVerifyReport
impl UnsafeUnpin for BlockVerifyReport
impl UnwindSafe for BlockVerifyReport
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> 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