diff options
author | Lars Wirzenius <liw@liw.fi> | 2018-10-02 12:25:32 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2018-10-02 12:25:32 +0300 |
commit | 8481c6d0c0ba49743a6a7cba0ec0e731f430aed1 (patch) | |
tree | fc8058cb0716f9783484d73f4132ef46c3c4f0d7 /src | |
parent | d022dc87fa03ab54256711bf1daf9e2030e3f377 (diff) | |
download | summainrs-8481c6d0c0ba49743a6a7cba0ec0e731f430aed1.tar.gz |
Change: use an iterator to get BTreeMaps
Diffstat (limited to 'src')
-rw-r--r-- | src/main.rs | 33 |
1 files 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 |