Add more context in error messages

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
This commit is contained in:
Matthias Beyer 2019-05-18 00:14:34 +02:00
parent b808658648
commit 5ebbcb774a
2 changed files with 10 additions and 2 deletions

View File

@ -18,6 +18,7 @@
//
use failure::Fallible as Result;
use failure::ResultExt;
use failure::Error;
use toml::Value;
@ -79,7 +80,12 @@ impl Is for ::libimagstore::store::Entry {
fn is<T: IsKindHeaderPathProvider>(&self) -> Result<bool> {
let field = T::kindflag_header_location();
match self.get_header().read_bool(field).map_err(Error::from)? {
match self
.get_header()
.read_bool(field)
.context(format_err!("Failed reading header '{}' in '{}'", field, self.get_location()))
.map_err(Error::from)?
{
Some(b) => Ok(b),
None => Ok(false),
}
@ -88,6 +94,7 @@ impl Is for ::libimagstore::store::Entry {
fn set_isflag<T: IsKindHeaderPathProvider>(&mut self) -> Result<()> {
self.get_header_mut()
.insert(T::kindflag_header_location(), Value::Boolean(true))
.context(format_err!("Failed inserting header '{}' in '{}'", T::kindflag_header_location(), self.get_location()))
.map_err(Error::from)
.map(|_| ())
}
@ -96,6 +103,7 @@ impl Is for ::libimagstore::store::Entry {
trace!("Trying to remove: {}", T::kindflag_header_location());
self.get_header_mut()
.delete(T::kindflag_header_location())
.context(format_err!("Failed deleting header '{}' in '{}'", T::kindflag_header_location(), self.get_location()))
.map_err(Error::from)
.map(|_| ())
}

View File

@ -40,7 +40,7 @@
extern crate filters;
extern crate toml;
extern crate toml_query;
extern crate failure;
#[macro_use] extern crate failure;
#[macro_use] extern crate log;
extern crate libimagstore;