#[non_exhaustive]pub struct AnalysisReport {
pub file_count: usize,
pub dir_count: usize,
pub total_size: u64,
pub largest_files: Vec<Entry>,
pub by_extension: HashMap<String, ExtensionStats>,
pub by_mime: HashMap<String, MimeStats>,
pub age_buckets: AgeBuckets,
pub errors: Vec<(PathBuf, Error)>,
pub errors_total: usize,
pub duration: Duration,
}Expand description
#[non_exhaustive]: a new aggregate (e.g. permission-mode breakdown)
is additive, not a breaking change for callers who construct nothing
and only read fields — mirrors Progress’s reasoning in
src/progress.rs.
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.file_count: usize§dir_count: usize§total_size: u64§largest_files: Vec<Entry>Largest matched files, descending by size, capped at
AnalyzeBuilder::top_n_largest.
by_extension: HashMap<String, ExtensionStats>Keyed by lowercased extension without the leading dot; entries
with no extension are grouped under the empty string "".
by_mime: HashMap<String, MimeStats>Populated only when .detect_mime_types(true) is set; empty
otherwise. Keyed by the MIME type infer reports, or "unknown"
when it can’t classify the file’s header.
age_buckets: AgeBuckets§errors: Vec<(PathBuf, Error)>Sample of encountered errors, first-N by walk order (not sorted
by severity or size), capped at AnalyzeBuilder::max_reported_errors.
errors_total: usizeTrue count of errors encountered, independent of the errors cap.
duration: DurationTrait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for AnalysisReport
impl !UnwindSafe for AnalysisReport
impl Freeze for AnalysisReport
impl Send for AnalysisReport
impl Sync for AnalysisReport
impl Unpin for AnalysisReport
impl UnsafeUnpin for AnalysisReport
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> 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