Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- pub fn ls(cache: &Path) -> impl Iterator {
- let mut path = PathBuf::new();
- path.push(cache);
- path.push(format!("indev-v{}", INDEX_VERSION));
- WalkDir::new(path).into_iter().flat_map(|bucket| -> Result<_, Error> {
- let bucket = bucket?;
- let entries = bucket_entries(bucket.path())?;
- let mut dedupe: HashMap<String, SerializableEntry> = HashMap::new();
- for entry in entries {
- dedupe.insert(entry.key.clone(), entry);
- }
- Ok(dedupe
- .into_iter()
- .filter(|se| se.1.integrity.is_some())
- .map(|se| {
- let se = se.1;
- Entry {
- key: se.key,
- integrity: se.integrity.unwrap().parse().unwrap(),
- time: se.time,
- size: se.size,
- metadata: se.metadata,
- }
- })
- )
- })
- }
- // let entries: Result<Vec<_>, _> = ls(&dir);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement