use std::path::PathBuf;
use std::time::Duration;
use crate::error::ParexError;
pub struct Results {
pub matches: usize,
pub paths: Vec<PathBuf>,
pub stats: ScanStats,
pub errors: Vec<ParexError>,
}
pub struct ScanStats {
pub files: usize,
pub dirs: usize,
pub duration: Duration,
pub entries_per_sec: usize,
}
impl ScanStats {
pub(crate) fn compute(files: usize, dirs: usize, duration: Duration) -> Self {
let total = files + dirs;
let eps = if duration.as_secs_f64() > 0.0 {
(total as f64 / duration.as_secs_f64()) as usize
} else {
0
};
Self {
files,
dirs,
duration,
entries_per_sec: eps,
}
}
}