diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2016-08-25 18:19:40 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2016-08-28 18:41:55 +0200 |
commit | f3727ca68603b8615c1e6b6bcd338fa5f4fe08d1 (patch) | |
tree | c06e70b89554588826bb5c49d3506035848d38de /libimagcounter | |
parent | 138e506882b7f2213f21e52de4adcbf85614a9dd (diff) |
Fix libimagcounter::counter::* for new StoreId interface
Diffstat (limited to 'libimagcounter')
-rw-r--r-- | libimagcounter/src/counter.rs | 20 | ||||
-rw-r--r-- | libimagcounter/src/error.rs | 1 |
2 files changed, 14 insertions, 7 deletions
diff --git a/libimagcounter/src/counter.rs b/libimagcounter/src/counter.rs index 8aa7e4bb..e6a6e309 100644 --- a/libimagcounter/src/counter.rs +++ b/libimagcounter/src/counter.rs @@ -48,8 +48,10 @@ impl<'a> Counter<'a> { debug!("Creating new counter: '{}' with value: {}", name, init); let fle = { - let mut lockentry = try!(store.create(ModuleEntryPath::new(name.clone()).into_storeid()) - .map_err_into(CEK::StoreWriteError)); + let id = try!(ModuleEntryPath::new(name.clone()) + .into_storeid() + .map_err_into(CEK::StoreWriteError)); + let mut lockentry = try!(store.create(id).map_err_into(CEK::StoreWriteError)); { let mut entry = lockentry.deref_mut(); @@ -153,7 +155,7 @@ impl<'a> Counter<'a> { }) } - fn read_header_at<T, F>(&self, name: &str, f: F) -> Result<T> + fn read_header_at<T, F>(&self, name: &str, f: F) -> Result<T> where F: FnOnce(Option<Value>) -> Result<T> { self.fle.get_header().read(name).map_err_into(CEK::StoreWriteError).and_then(f) @@ -161,14 +163,18 @@ impl<'a> Counter<'a> { pub fn load(name: CounterName, store: &Store) -> Result<Counter> { debug!("Loading counter: '{}'", name); - let id = ModuleEntryPath::new(name).into_storeid(); + let id = try!(ModuleEntryPath::new(name) + .into_storeid() + .map_err_into(CEK::StoreWriteError)); Counter::from_storeid(store, id) } pub fn delete(name: CounterName, store: &Store) -> Result<()> { debug!("Deleting counter: '{}'", name); - store.delete(ModuleEntryPath::new(name).into_storeid()) - .map_err_into(CEK::StoreWriteError) + let id = try!(ModuleEntryPath::new(name) + .into_storeid() + .map_err_into(CEK::StoreWriteError)); + store.delete(id).map_err_into(CEK::StoreWriteError) } pub fn all_counters(store: &Store) -> Result<CounterIterator> { @@ -195,7 +201,7 @@ impl<'a> FromStoreId for Counter<'a> { .map_err_into(CEK::StoreReadError) .and_then(|u| { counter.unit = u; - Ok(counter) + Ok(counter) }) } } diff --git a/libimagcounter/src/error.rs b/libimagcounter/src/error.rs index e8016fb6..e151c407 100644 --- a/libimagcounter/src/error.rs +++ b/libimagcounter/src/error.rs @@ -1,5 +1,6 @@ generate_error_module!( generate_error_types!(CounterError, CounterErrorKind, + StoreIdError => "StoreId error", StoreReadError => "Store read error", StoreWriteError => "Store write error", HeaderTypeError => "Header type error", |