1 use anyhow::{Context, Error};
2 use std::{collections::HashSet, fs, path::PathBuf};
3 
main() -> Result<(), Error>4 fn main() -> Result<(), Error> {
5     assert_eq!(
6         ["/foo.txt", "/bar.txt", "/baz.txt", "/sub"]
7             .into_iter()
8             .map(PathBuf::from)
9             .collect::<HashSet<_>>(),
10         fs::read_dir("/")
11             .context("read_dir /")?
12             .map(|r| r.map(|d| d.path()))
13             .collect::<Result<_, _>>()
14             .context("elem in /")?
15     );
16 
17     assert_eq!(
18         ["/sub/wow.txt", "/sub/yay.txt"]
19             .into_iter()
20             .map(PathBuf::from)
21             .collect::<HashSet<_>>(),
22         fs::read_dir("/sub")
23             .context("read_dir /sub")?
24             .map(|r| r.map(|d| d.path()))
25             .collect::<Result<_, _>>()
26             .context("elem in /sub")?
27     );
28 
29     Ok(())
30 }
31