Add more context in error messages
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
This commit is contained in:
parent
740729bfda
commit
6e0a179550
3 changed files with 10 additions and 10 deletions
|
@ -27,6 +27,7 @@ use libimagentrylink::internal::InternalLinker;
|
|||
use toml_query::read::TomlValueReadTypeExt;
|
||||
|
||||
use failure::Fallible as Result;
|
||||
use failure::ResultExt;
|
||||
use failure::Error;
|
||||
use failure::err_msg;
|
||||
use crate::store::CATEGORY_REGISTER_NAME_FIELD_PATH;
|
||||
|
@ -49,6 +50,7 @@ impl Category for Entry {
|
|||
trace!("Getting category name of '{:?}'", self.get_location());
|
||||
self.get_header()
|
||||
.read_string(CATEGORY_REGISTER_NAME_FIELD_PATH)
|
||||
.context(format_err!("Failed to read header at '{}'", CATEGORY_REGISTER_NAME_FIELD_PATH))
|
||||
.map_err(Error::from)?
|
||||
.ok_or_else(|| Error::from(err_msg("Category name missing")))
|
||||
}
|
||||
|
|
|
@ -52,7 +52,7 @@ impl EntryCategory for Entry {
|
|||
trace!("Setting category '{}' UNCHECKED", s);
|
||||
self.get_header_mut()
|
||||
.insert(&String::from("category.value"), Value::String(s.to_string()))
|
||||
.map_err(Error::from)
|
||||
.context(format_err!("Failed to insert header at 'category.value' of '{}'", self.get_location()))
|
||||
.context(EM::EntryHeaderWriteError)
|
||||
.map_err(Error::from)
|
||||
.map(|_| ())
|
||||
|
@ -84,7 +84,7 @@ impl EntryCategory for Entry {
|
|||
trace!("Has category? '{}'", self.get_location());
|
||||
self.get_header()
|
||||
.read("category.value")
|
||||
.map_err(Error::from)
|
||||
.context(format_err!("Failed to read header at 'category.value' of '{}'", self.get_location()))
|
||||
.context(EM::EntryHeaderReadError)
|
||||
.map_err(Error::from)
|
||||
.map(|x| x.is_some())
|
||||
|
@ -101,7 +101,7 @@ impl EntryCategory for Entry {
|
|||
|
||||
self.get_header_mut()
|
||||
.delete("category.value")
|
||||
.map_err(Error::from)
|
||||
.context(format_err!("Failed to delete header at 'category.value' of '{}'", self.get_location()))
|
||||
.context(EM::EntryHeaderWriteError)
|
||||
.map_err(Error::from)
|
||||
.map(|_| ())
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
use libimagstore::storeid::StoreIdIterator;
|
||||
use libimagstore::store::Store;
|
||||
use libimagstore::store::FileLockEntry;
|
||||
use libimagerror::errors::ErrorMsg as EM;
|
||||
|
||||
use toml_query::read::TomlValueReadTypeExt;
|
||||
|
||||
|
@ -60,8 +59,8 @@ impl<'a> Iterator for CategoryNameIter<'a> {
|
|||
let query = CATEGORY_REGISTER_NAME_FIELD_PATH;
|
||||
|
||||
while let Some(sid) = self.1.next() {
|
||||
match sid {
|
||||
Err(e) => return Some(Err(e).map_err(Error::from)),
|
||||
match sid.context("Error while iterating over category names").map_err(Error::from) {
|
||||
Err(e) => return Some(Err(e)),
|
||||
Ok(sid) => {
|
||||
if sid.is_in_collection(&["category"]) {
|
||||
let func = |store: &Store| { // hack for returning Some(Result<_, _>)
|
||||
|
@ -70,8 +69,7 @@ impl<'a> Iterator for CategoryNameIter<'a> {
|
|||
.ok_or_else(|| err_msg("Store read error"))?
|
||||
.get_header()
|
||||
.read_string(query)
|
||||
.map_err(Error::from)
|
||||
.context(EM::EntryHeaderReadError)?
|
||||
.context(format_err!("Failed to read header at '{}'", query))?
|
||||
.ok_or_else(|| err_msg("Store read error"))
|
||||
.map_err(Error::from)
|
||||
};
|
||||
|
@ -99,8 +97,8 @@ impl<'a> Iterator for CategoryEntryIterator<'a> {
|
|||
|
||||
fn next(&mut self) -> Option<Self::Item> {
|
||||
while let Some(next) = self.1.next() {
|
||||
match next {
|
||||
Err(e) => return Some(Err(e).map_err(Error::from)),
|
||||
match next.context("Error while iterating over category entries").map_err(Error::from) {
|
||||
Err(e) => return Some(Err(e)),
|
||||
Ok(next) => {
|
||||
let getter = |next| -> Result<(String, FileLockEntry<'a>)> {
|
||||
let entry = self.0
|
||||
|
|
Loading…
Reference in a new issue