summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/builtins.rs9
-rw-r--r--src/format.rs18
2 files changed, 15 insertions, 12 deletions
diff --git a/src/builtins.rs b/src/builtins.rs
index 225ef5b..8494c7e 100644
--- a/src/builtins.rs
+++ b/src/builtins.rs
@@ -4,9 +4,12 @@ pub fn is(exe: &str) -> bool {
pub fn run(exe: &str, args: &[String]) -> u8 {
match exe {
- "cd" => {
- impls::cd(args.iter().map(|s| s.as_ref()).next().unwrap_or(""))
- }
+ "cd" => impls::cd(
+ args.iter()
+ .map(std::convert::AsRef::as_ref)
+ .next()
+ .unwrap_or(""),
+ ),
_ => unreachable!(),
}
}
diff --git a/src/format.rs b/src/format.rs
index 9086500..e552f53 100644
--- a/src/format.rs
+++ b/src/format.rs
@@ -1,15 +1,15 @@
use std::os::unix::process::ExitStatusExt as _;
pub fn exit_status(status: std::process::ExitStatus) -> String {
- if let Some(sig) = status.signal() {
- if let Some(name) = signal_hook::low_level::signal_name(sig) {
- format!("{:4} ", &name[3..])
- } else {
- format!("SIG{} ", sig)
- }
- } else {
- format!("{:03} ", status.code().unwrap())
- }
+ status.signal().map_or_else(
+ || format!("{:03} ", status.code().unwrap()),
+ |sig| {
+ signal_hook::low_level::signal_name(sig).map_or_else(
+ || format!("SIG{} ", sig),
+ |name| format!("{:4} ", &name[3..]),
+ )
+ },
+ )
}
pub fn time(time: time::OffsetDateTime) -> String {