use std::path::Path;
pub trait Stop: Send + Sync {
fn stop(&self, path: &Path) -> bool;
}
pub struct HiddenDirStop {}
impl Stop for HiddenDirStop {
fn stop(&self, path: &Path) -> bool {
path.is_dir()
&& path
.file_name()
.map(|name| name.to_string_lossy().starts_with('.'))
.unwrap_or(false)
}
}
unsafe impl Send for HiddenDirStop {}
pub struct IsFileStop;
impl Stop for IsFileStop {
fn stop(&self, path: &Path) -> bool {
path.is_file()
}
}