From e200e40070895303c0ee868ec387cfd695ee98f0 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Sat, 18 May 2019 00:14:34 +0200 Subject: [PATCH] Add more context in error messages Signed-off-by: Matthias Beyer --- lib/domain/libimaghabit/src/habit.rs | 5 ++++- lib/domain/libimaghabit/src/iter.rs | 5 +++-- lib/domain/libimaghabit/src/util.rs | 2 ++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/domain/libimaghabit/src/habit.rs b/lib/domain/libimaghabit/src/habit.rs index 2e99a443..7041dff7 100644 --- a/lib/domain/libimaghabit/src/habit.rs +++ b/lib/domain/libimaghabit/src/habit.rs @@ -25,6 +25,7 @@ use chrono::Local; use chrono::NaiveDate; use failure::Error; use failure::Fallible as Result; +use failure::ResultExt; use failure::err_msg; use crate::iter::HabitInstanceStoreIdIterator; @@ -257,7 +258,9 @@ impl HabitTemplate for Entry { } fn instance_id_for_name_and_datestr(habit_name: &String, habit_date: &String) -> Result { - crate::module_path::new_id(format!("instance/{}-{}", habit_name, habit_date)).map_err(Error::from) + crate::module_path::new_id(format!("instance/{}-{}", habit_name, habit_date)) + .context(format_err!("Failed building ID for instance: habit name = {}, habit date = {}", habit_name, habit_date)) + .map_err(Error::from) } pub mod builder { diff --git a/lib/domain/libimaghabit/src/iter.rs b/lib/domain/libimaghabit/src/iter.rs index f58dbd56..3344e9a8 100644 --- a/lib/domain/libimaghabit/src/iter.rs +++ b/lib/domain/libimaghabit/src/iter.rs @@ -19,6 +19,7 @@ use failure::Error; use failure::Fallible as Result; +use failure::ResultExt; use libimagstore::storeid::StoreIdIterator; use libimagstore::storeid::StoreIdIteratorWithStore; @@ -33,11 +34,11 @@ impl Iterator for HabitTemplateStoreIdIterator { fn next(&mut self) -> Option { while let Some(n) = self.0.next() { - match n { + match n.context("Error while iterating").map_err(Error::from) { Ok(n) => if n.is_habit_template() { return Some(Ok(n)) }, - Err(e) => return Some(Err(e).map_err(Error::from)), + Err(e) => return Some(Err(e)), } } None diff --git a/lib/domain/libimaghabit/src/util.rs b/lib/domain/libimaghabit/src/util.rs index 51adb6c1..bfe99374 100644 --- a/lib/domain/libimaghabit/src/util.rs +++ b/lib/domain/libimaghabit/src/util.rs @@ -21,6 +21,7 @@ use std::ops::BitXor; use failure::Error; use failure::Fallible as Result; +use failure::ResultExt; use crate::habit::HabitTemplate; use crate::instance::HabitInstance; @@ -88,6 +89,7 @@ pub fn get_string_header_from_entry(e: &Entry, path: &'static str) -> Result