summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2018-10-07 13:08:04 +0300
committerLars Wirzenius <liw@liw.fi>2018-10-07 13:08:04 +0300
commitdfae8f13aca85358ff05f0048163a6379e11c1f8 (patch)
tree94e2f6d5f1bd8a60e315aaca3f3cebd87f5c72ec
parent2b2af14ee0207858dbe4ede1e743141f75fdaf56 (diff)
downloadsummainrs-dfae8f13aca85358ff05f0048163a6379e11c1f8.tar.gz
Refactor: how serde_yaml::Values are created
-rw-r--r--src/format.rs40
1 files changed, 25 insertions, 15 deletions
diff --git a/src/format.rs b/src/format.rs
index c88d829..38cb9c7 100644
--- a/src/format.rs
+++ b/src/format.rs
@@ -14,8 +14,18 @@ use crypto_hash::{Algorithm, Hasher};
use serde_yaml;
+fn to_value(s: &str) -> serde_yaml::Value {
+ serde_yaml::to_value(s).unwrap()
+}
+
+
+fn int_value(i: u64) -> serde_yaml::Value {
+ serde_yaml::to_value(i).unwrap()
+}
+
+
pub fn name(e: &DirEntry) -> serde_yaml::Value {
- serde_yaml::to_value(&e.path().to_string_lossy()).unwrap()
+ to_value(&e.path().to_string_lossy())
}
@@ -24,59 +34,59 @@ pub fn mtime(e: &DirEntry) -> serde_yaml::Value {
let mtime = meta.modified().unwrap();
let datetime = DateTime::<Utc>::from(mtime);
let mtime = datetime.format("%Y-%m-%d %H:%M:%S.%f %z").to_string();
- serde_yaml::to_value(mtime).unwrap()
+ to_value(&mtime)
}
pub fn mode(e: &DirEntry) -> serde_yaml::Value {
let meta = e.metadata().unwrap();
let mode = meta.permissions().mode();
- serde_yaml::to_value(mode).unwrap()
+ to_value(&mode.to_string())
}
pub fn inode(e: &DirEntry) -> serde_yaml::Value {
let meta = e.metadata().unwrap();
- serde_yaml::to_value(meta.st_ino()).unwrap()
+ int_value(meta.st_ino())
}
pub fn dev(e: &DirEntry) -> serde_yaml::Value {
let meta = e.metadata().unwrap();
- serde_yaml::to_value(meta.st_dev()).unwrap()
+ int_value(meta.st_dev())
}
pub fn nlink(e: &DirEntry) -> serde_yaml::Value {
let meta = e.metadata().unwrap();
- serde_yaml::to_value(meta.st_nlink()).unwrap()
+ int_value(meta.st_nlink())
}
pub fn size(e: &DirEntry) -> serde_yaml::Value {
let meta = e.metadata().unwrap();
- serde_yaml::to_value(meta.len()).unwrap()
+ int_value(meta.len())
}
pub fn uid(e: &DirEntry) -> serde_yaml::Value {
let meta = e.metadata().unwrap();
- serde_yaml::to_value(meta.st_uid()).unwrap()
+ int_value(meta.st_uid() as u64)
}
pub fn gid(e: &DirEntry) -> serde_yaml::Value {
let meta = e.metadata().unwrap();
- serde_yaml::to_value(meta.st_gid()).unwrap()
+ int_value(meta.st_gid() as u64)
}
pub fn username(e: &DirEntry) -> serde_yaml::Value {
let meta = e.metadata().unwrap();
if let Some(u) = users::get_user_by_uid(meta.st_uid()) {
- serde_yaml::to_value(u.name()).unwrap()
+ to_value(u.name())
} else {
- serde_yaml::to_value("unknown user").unwrap()
+ to_value("unknown user")
}
}
@@ -84,9 +94,9 @@ pub fn username(e: &DirEntry) -> serde_yaml::Value {
pub fn group(e: &DirEntry) -> serde_yaml::Value {
let meta = e.metadata().unwrap();
if let Some(g) = users::get_group_by_gid(meta.st_gid()) {
- serde_yaml::to_value(g.name()).unwrap()
+ to_value(g.name())
} else {
- serde_yaml::to_value("unknown group").unwrap()
+ to_value("unknown group")
}
}
@@ -114,8 +124,8 @@ pub fn sha256(e: &DirEntry) -> serde_yaml::Value {
}
if ok {
let digest = hasher.finish();
- serde_yaml::to_value(hex::encode(digest)).unwrap()
+ to_value(&hex::encode(digest))
} else {
- serde_yaml::to_value(format!("can't read file")).unwrap()
+ to_value("can't read file")
}
}