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