#![forbid(unsafe_code)]
mod hash;
mod language;
mod path;
mod walker;
mod watcher;
use camino::Utf8Path;
use std::time::SystemTime;
pub use hash::{hash_file, hash_files_parallel, Blake3Hash};
pub use language::Language;
pub use walker::{IgnoreWalker, PollingWalker};
pub use watcher::{ChangeKind, ChangedPath, FileWatcher, FsWatcher, PollingWatcher};
pub trait Walker {
fn walk(&self, root: &Utf8Path) -> impl Iterator<Item = FileEntry>;
}
#[derive(Debug, Clone)]
pub struct FileEntry {
pub path: camino::Utf8PathBuf,
pub hash: Blake3Hash,
pub language: Option<Language>,
pub size: u64,
pub modified: SystemTime,
}