#[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: Duration