From 3b96be47ec5409dda2c43207c4e86b76bb35ae70 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Tue, 2 Oct 2018 10:39:25 +0300 Subject: Change: use BTReeMap to retain order of fields in output --- src/main.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main.rs b/src/main.rs index 3813671..ea37040 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,6 @@ use std::env; use std::io; -use std::collections::HashMap; +use std::collections::BTreeMap; extern crate walkdir; use walkdir::{WalkDir, DirEntry}; @@ -15,15 +15,15 @@ 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 hash = mkhash(&e); - println!("{}", serde_yaml::to_string(&hash).unwrap()); + let map = mkmap(&e); + println!("{}", serde_yaml::to_string(&map).unwrap()); } } Ok(()) } -fn mkhash(e: &DirEntry) -> HashMap<&str, String> { +fn mkmap(e: &DirEntry) -> BTreeMap<&str, String> { let fields = vec![ ("Name", format::name(e)), ("Mtime", format::mtime(e)), @@ -37,13 +37,13 @@ fn mkhash(e: &DirEntry) -> HashMap<&str, String> { ("Gid", format::gid(e)), ("Group", format::group(e)), ]; - let mut hash: HashMap<&str, String> = - HashMap::from(fields.iter().cloned().collect()); + let mut map: BTreeMap<&str, String> = + BTreeMap::from(fields.iter().cloned().collect()); if let Ok(m) = e.metadata() { if m.is_file() { - hash.insert("SHA256", format::sha256(e)); + map.insert("SHA256", format::sha256(e)); } } - hash + map } -- cgit v1.2.1