summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2018-10-02 12:25:32 +0300
committerLars Wirzenius <liw@liw.fi>2018-10-02 12:25:32 +0300
commit8481c6d0c0ba49743a6a7cba0ec0e731f430aed1 (patch)
treefc8058cb0716f9783484d73f4132ef46c3c4f0d7
parentd022dc87fa03ab54256711bf1daf9e2030e3f377 (diff)
downloadsummainrs-8481c6d0c0ba49743a6a7cba0ec0e731f430aed1.tar.gz
Change: use an iterator to get BTreeMaps
-rw-r--r--src/main.rs33
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