From 8481c6d0c0ba49743a6a7cba0ec0e731f430aed1 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Tue, 2 Oct 2018 12:25:32 +0300 Subject: Change: use an iterator to get BTreeMaps --- src/main.rs | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/src/main.rs b/src/main.rs index af3c0d3..e797b58 100644 --- a/src/main.rs +++ b/src/main.rs @@ -13,8 +13,11 @@ mod format; fn main() -> io::Result<()> { for dirname in env::args().skip(1) { - for e in WalkDir::new(&dirname).into_iter().filter_map(|e| e.ok()) { - let map = mkmap(&e); + let maps = WalkDir::new(&dirname) + .into_iter() + .filter_map(|e| e.ok()) + .map(|e| mkmap(e)); + for map in maps { println!("{}", serde_yaml::to_string(&map).unwrap()); } } @@ -22,26 +25,26 @@ fn main() -> io::Result<()> { } -fn mkmap(e: &DirEntry) -> BTreeMap<&str, String> { +fn mkmap(e: DirEntry) -> BTreeMap<&'static str, String> { let fields = vec![ - ("Name", format::name(e)), - ("Mtime", format::mtime(e)), - ("Mode", format::mode(e)), - ("Ino", format::inode(e)), - ("Dev", format::dev(e)), - ("Nlink", format::nlink(e)), - ("Size", format::size(e)), - ("Uid", format::uid(e)), - ("Username", format::username(e)), - ("Gid", format::gid(e)), - ("Group", format::group(e)), + ("Name", format::name(&e)), + ("Mtime", format::mtime(&e)), + ("Mode", format::mode(&e)), + ("Ino", format::inode(&e)), + ("Dev", format::dev(&e)), + ("Nlink", format::nlink(&e)), + ("Size", format::size(&e)), + ("Uid", format::uid(&e)), + ("Username", format::username(&e)), + ("Gid", format::gid(&e)), + ("Group", format::group(&e)), ]; let mut map: BTreeMap<&str, String> = BTreeMap::from(fields.iter().cloned().collect()); if let Ok(m) = e.metadata() { if m.is_file() { - map.insert("SHA256", format::sha256(e)); + map.insert("SHA256", format::sha256(&e)); } } map -- cgit v1.2.1