diff options
author | Jesse Luehrs <doy@tozt.net> | 2021-11-13 04:31:50 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2021-11-13 04:31:50 -0500 |
commit | 153d4c4161fa8fba350dcc51ab14b08635c53e99 (patch) | |
tree | 1c587518bf112e27286f7f3e76274c980dc31856 /src/util.rs | |
parent | 7c0da0cd97536a9c412d91524971f00af87d1bdc (diff) | |
download | nbsh-153d4c4161fa8fba350dcc51ab14b08635c53e99.tar.gz nbsh-153d4c4161fa8fba350dcc51ab14b08635c53e99.zip |
track timing information for commands
Diffstat (limited to 'src/util.rs')
-rw-r--r-- | src/util.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/util.rs b/src/util.rs index d792b91..649888c 100644 --- a/src/util.rs +++ b/src/util.rs @@ -3,3 +3,21 @@ pub type Mutex<T> = async_std::sync::Arc<async_std::sync::Mutex<T>>; pub fn mutex<T>(t: T) -> Mutex<T> { async_std::sync::Arc::new(async_std::sync::Mutex::new(t)) } + +pub fn format_duration(dur: std::time::Duration) -> String { + let secs = dur.as_secs(); + let nanos = dur.subsec_nanos(); + if secs > 60 { + let mins = secs / 60; + let secs = secs - mins * 60; + format!("{}m{}s", mins, secs) + } else if secs > 0 { + format!("{}.{:03}s", secs, nanos / 1_000_000) + } else if nanos >= 1_000_000 { + format!("{}ms", nanos / 1_000_000) + } else if nanos >= 1_000 { + format!("{}us", nanos / 1_000) + } else { + format!("{}ns", nanos) + } +} |