From dfae8f13aca85358ff05f0048163a6379e11c1f8 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sun, 7 Oct 2018 13:08:04 +0300 Subject: Refactor: how serde_yaml::Values are created --- src/format.rs | 40 +++++++++++++++++++++++++--------------- 1 file 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::::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") } } -- cgit v1.2.1