summaryrefslogtreecommitdiffstats
path: root/imag-counter
diff options
context:
space:
mode:
authorKai Sickeler <k.sickeler@gmail.com>2016-07-18 22:05:18 +0200
committerKai Sickeler <k.sickeler@gmail.com>2016-07-27 17:40:20 +0200
commitf527e7eb0aed28e4ce02262e3158b4b228071d9a (patch)
tree98c4c012e96faf07209bd84463da9e54494ccddd /imag-counter
parent3445908ef9cc28ebef7befb41dec12ecb47ec95e (diff)
changed default behavior from unit to None
Diffstat (limited to 'imag-counter')
-rw-r--r--imag-counter/src/create.rs15
1 files changed, 8 insertions, 7 deletions
diff --git a/imag-counter/src/create.rs b/imag-counter/src/create.rs
index 04ec3bb7..9b455df5 100644
--- a/imag-counter/src/create.rs
+++ b/imag-counter/src/create.rs
@@ -3,6 +3,7 @@ use std::str::FromStr;
use libimagrt::runtime::Runtime;
use libimagerror::trace::trace_error_exit;
use libimagcounter::counter::Counter;
+use libimagcounter::counter::CounterUnit;
pub fn create(rt: &Runtime) {
rt.cli()
@@ -15,16 +16,16 @@ pub fn create(rt: &Runtime) {
.value_of("initval")
.and_then(|i| FromStr::from_str(i).ok())
.unwrap_or(0);
+
let unit = scmd
.value_of("unit")
- .unwrap_or("unit");
+ .map(CounterUnit::new);
- match Counter::new(rt.store(), String::from(name), init) {
- Err(e) => {
- warn!("Could not create Counter '{}' with initial value '{} {}'", name, init, unit);
+ Counter::new(rt.store(), String::from(name), init)
+ .and_then(|c| c.with_unit(unit))
+ .unwrap_or_else(|e| {
+ warn!("Could not create Counter '{}' with initial value '{}'", name, init);
trace_error_exit(&e, 1);
- },
- Ok(_) => info!("Created Counter '{}' with initial value '{} {}'", name, init, unit),
- }
+ });
});
}