Advertisement
Guest User

Untitled

a guest
Jun 16th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.95 KB | None | 0 0
  1. pub fn ls(cache: &Path) -> impl Iterator {
  2. let mut path = PathBuf::new();
  3. path.push(cache);
  4. path.push(format!("indev-v{}", INDEX_VERSION));
  5. WalkDir::new(path).into_iter().flat_map(|bucket| -> Result<_, Error> {
  6. let bucket = bucket?;
  7. let entries = bucket_entries(bucket.path())?;
  8. let mut dedupe: HashMap<String, SerializableEntry> = HashMap::new();
  9. for entry in entries {
  10. dedupe.insert(entry.key.clone(), entry);
  11. }
  12. Ok(dedupe
  13. .into_iter()
  14. .filter(|se| se.1.integrity.is_some())
  15. .map(|se| {
  16. let se = se.1;
  17. Entry {
  18. key: se.key,
  19. integrity: se.integrity.unwrap().parse().unwrap(),
  20. time: se.time,
  21. size: se.size,
  22. metadata: se.metadata,
  23. }
  24. })
  25. )
  26. })
  27. }
  28.  
  29. // let entries: Result<Vec<_>, _> = ls(&dir);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement