Advertisement
Guest User

Untitled

a guest
Aug 23rd, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.81 KB | None | 0 0
  1. #[derive(Debug)]
  2. struct Verdict {
  3. path: String,
  4. keep: bool
  5. }
  6.  
  7. fn match_verdicts<'a>(dir: &Path, verdicts: &'a Vec<Verdict>) -> Option<&'a Verdict> {
  8. let p = dir.to_str().unwrap();
  9. verdicts.iter().find(|&v| v.path == p )
  10. }
  11.  
  12. fn process_dirs(dir: &Path, verdicts: &Vec<Verdict>) -> io::Result<()> {
  13. for entry in fs::read_dir(dir)? {
  14. let entry = entry?;
  15. let path = entry.path();
  16. if path.is_dir() {
  17. match match_verdicts(&path, &verdicts).map(|x| x.keep ) {
  18. Some(false) => (),
  19. Some(true) => process_dirs(&path, &verdicts)?,
  20. None => println!("{} not part of verdicts; skipping", path.display())
  21. }
  22. } else {
  23. println!("ohai {}", path.display())
  24. }
  25. }
  26. Ok(())
  27. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement