use std::collections::HashMap;
use std::path::{Path, PathBuf};
use crate::entry::LoadedEntry;
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct CachedScan {
pub generation: u32,
pub entries: Vec<LoadedEntry>,
}
#[derive(Debug, Clone, Default, PartialEq, Eq)]
pub struct TreeCache {
map: HashMap<PathBuf, CachedScan>,
}
impl TreeCache {
pub(crate) fn insert(&mut self, path: PathBuf, generation: u32, entries: Vec<LoadedEntry>) {
self.map.insert(
path,
CachedScan {
generation,
entries,
},
);
}
pub fn get(&self, path: &Path) -> Option<&CachedScan> {
self.map.get(path)
}
pub fn contains(&self, path: &Path) -> bool {
self.map.contains_key(path)
}
pub fn len(&self) -> usize {
self.map.len()
}
pub fn is_empty(&self) -> bool {
self.map.is_empty()
}
}