diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2019-12-23 13:38:52 +0100 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2019-12-23 13:38:52 +0100 |
commit | e12ee775ada7ca26d715501336ba7d1af665eea1 (patch) | |
tree | 494e06858d49e2f899b92823fed10b100d21ea24 | |
parent | 1c5a81d5b024ef90a45345dc3dc13481afb7929a (diff) | |
parent | 02604ae58be17a9ab980b24b29192500c6658f9d (diff) |
Merge branch 'replace-map-dbg-err' into master
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r-- | bin/domain/imag-diary/Cargo.toml | 1 | ||||
-rw-r--r-- | bin/domain/imag-diary/src/create.rs | 8 | ||||
-rw-r--r-- | bin/domain/imag-diary/src/lib.rs | 1 | ||||
-rw-r--r-- | bin/domain/imag-diary/src/list.rs | 4 | ||||
-rw-r--r-- | bin/domain/imag-habit/Cargo.toml | 1 | ||||
-rw-r--r-- | bin/domain/imag-habit/src/lib.rs | 5 | ||||
-rw-r--r-- | lib/core/libimagrt/src/runtime.rs | 3 | ||||
-rw-r--r-- | lib/core/libimagstore/src/store.rs | 6 | ||||
-rw-r--r-- | lib/domain/libimaghabit/src/habit.rs | 16 | ||||
-rw-r--r-- | lib/entry/libimagentrylink/src/storecheck.rs | 37 | ||||
-rw-r--r-- | lib/entry/libimagentryurl/src/iter.rs | 10 | ||||
-rw-r--r-- | lib/entry/libimagentryurl/src/linker.rs | 8 | ||||
-rw-r--r-- | lib/etc/libimagutil/src/debug_option.rs | 28 | ||||
-rw-r--r-- | lib/etc/libimagutil/src/debug_result.rs | 29 | ||||
-rw-r--r-- | lib/etc/libimagutil/src/lib.rs | 2 |
15 files changed, 41 insertions, 118 deletions
diff --git a/bin/domain/imag-diary/Cargo.toml b/bin/domain/imag-diary/Cargo.toml index 26432644..669c9d31 100644 --- a/bin/domain/imag-diary/Cargo.toml +++ b/bin/domain/imag-diary/Cargo.toml @@ -27,6 +27,7 @@ toml-query = "0.9.2" itertools = "0.8.0" failure = "0.1.5" resiter = "0.4.0" +option-inspect = "0.1.0" libimagerror = { version = "0.10.0", path = "../../../lib/core/libimagerror" } libimagstore = { version = "0.10.0", path = "../../../lib/core/libimagstore" } diff --git a/bin/domain/imag-diary/src/create.rs b/bin/domain/imag-diary/src/create.rs index c6c4687f..7bd574c0 100644 --- a/bin/domain/imag-diary/src/create.rs +++ b/bin/domain/imag-diary/src/create.rs @@ -25,11 +25,11 @@ use failure::Error; use failure::ResultExt; use failure::err_msg; use failure::Fallible as Result; +use option_inspect::*; use libimagdiary::diary::Diary; use libimagentryedit::edit::Edit; use libimagrt::runtime::Runtime; -use libimagutil::debug_option::DebugOption; use libimagstore::store::FileLockEntry; use libimagstore::store::Store; @@ -103,7 +103,7 @@ fn create_id_from_clispec(create: &ArgMatches, timed_type: Timed) -> Result<Naiv Timed::Minutely => { let min = create .value_of("minute") - .map_dbg(|m| format!("minute = {:?}", m)) + .inspect(|m| debug!("minute = {:?}", m)) .map(|s| { FromStr::from_str(s) .map_err(Error::from) @@ -123,7 +123,7 @@ fn create_id_from_clispec(create: &ArgMatches, timed_type: Timed) -> Result<Naiv Timed::Secondly => { let min = create .value_of("minute") - .map_dbg(|m| format!("minute = {:?}", m)) + .inspect(|m| debug!("minute = {:?}", m)) .map(|s| { FromStr::from_str(s) .map_err(Error::from) @@ -135,7 +135,7 @@ fn create_id_from_clispec(create: &ArgMatches, timed_type: Timed) -> Result<Naiv let sec = create .value_of("second") - .map_dbg(|s| format!("second = {:?}", s)) + .inspect(|s| debug!("second = {:?}", s)) .map(|s| { FromStr::from_str(s) .map_err(Error::from) diff --git a/bin/domain/imag-diary/src/lib.rs b/bin/domain/imag-diary/src/lib.rs index f87cd927..9a924857 100644 --- a/bin/domain/imag-diary/src/lib.rs +++ b/bin/domain/imag-diary/src/lib.rs @@ -42,6 +42,7 @@ extern crate chrono; extern crate toml; extern crate toml_query; extern crate itertools; +extern crate option_inspect; extern crate libimagdiary; extern crate libimagentryedit; diff --git a/bin/domain/imag-diary/src/list.rs b/bin/domain/imag-diary/src/list.rs index 634b0ff7..0f1018aa 100644 --- a/bin/domain/imag-diary/src/list.rs +++ b/bin/domain/imag-diary/src/list.rs @@ -26,7 +26,6 @@ use resiter::AndThen; use libimagdiary::diary::Diary; use libimagrt::runtime::Runtime; -use libimagutil::debug_result::*; use libimagdiary::diaryid::DiaryId; use libimagdiary::diaryid::FromStoreId; use libimagstore::storeid::IntoStoreId; @@ -37,8 +36,7 @@ pub fn list(rt: &Runtime) -> Result<()> { let diaryname = get_diary_name(rt) .ok_or_else(|| err_msg("No diary selected. Use either the configuration file or the commandline option"))?; - let mut ids = Diary::entries(rt.store(), &diaryname) - .map_dbg_str("Ok")? + let mut ids = Diary::entries(rt.store(), &diaryname)? .and_then_ok(|id| DiaryId::from_storeid(&id)) .collect::<Result<Vec<_>>>()?; diff --git a/bin/domain/imag-habit/Cargo.toml b/bin/domain/imag-habit/Cargo.toml index 2e64c2fb..e4f96f7b 100644 --- a/bin/domain/imag-habit/Cargo.toml +++ b/bin/domain/imag-habit/Cargo.toml @@ -28,6 +28,7 @@ kairos = "0.3.0" prettytable-rs = "0.8.0" failure = "0.1.5" resiter = "0.4.0" +result-inspect = "0.1" libimagerror = { version = "0.10.0", path = "../../../lib/core/libimagerror" } libimagstore = { version = "0.10.0", path = "../../../lib/core/libimagstore" } diff --git a/bin/domain/imag-habit/src/lib.rs b/bin/domain/imag-habit/src/lib.rs index c8075dfe..e9ce9834 100644 --- a/bin/domain/imag-habit/src/lib.rs +++ b/bin/domain/imag-habit/src/lib.rs @@ -43,6 +43,7 @@ extern crate resiter; extern crate chrono; extern crate prettytable; #[macro_use] extern crate failure; +extern crate result_inspect; extern crate libimaghabit; extern crate libimagstore; @@ -65,6 +66,7 @@ use resiter::Filter; use resiter::IterInnerOkOrElse; use clap::App; use chrono::NaiveDate; +use result_inspect::*; use libimagrt::runtime::Runtime; use libimagrt::application::ImagApplication; @@ -74,7 +76,6 @@ use libimaghabit::habit::HabitTemplate; use libimagstore::store::FileLockEntry; use libimagstore::iter::get::StoreIdGetIteratorExtension; use libimaginteraction::ask::ask_bool; -use libimagutil::debug_result::DebugResult; mod ui; @@ -133,7 +134,7 @@ fn create(rt: &Runtime) -> Result<()> { let parsedate = |d, pname| match kairos_parse(d)? { Parsed::TimeType(tt) => tt.calculate() - .map_dbg(|y| format!("TimeType yielded: '{:?}'", y))? + .inspect(|y| debug!("TimeType yielded: '{:?}'", y))? .get_moment() .ok_or_else(|| { format_err!("Error: '{}' parameter does not yield a point in time", pname) diff --git a/lib/core/libimagrt/src/runtime.rs b/lib/core/libimagrt/src/runtime.rs index a1a27c6c..6791404e 100644 --- a/lib/core/libimagrt/src/runtime.rs +++ b/lib/core/libimagrt/src/runtime.rs @@ -44,7 +44,6 @@ use libimagerror::errors::ErrorMsg as EM; use libimagerror::trace::*; use libimagstore::store::Store; use libimagstore::storeid::StoreId; -use libimagutil::debug_result::DebugResult; use crate::spec::CliSpec; use atty; @@ -384,8 +383,8 @@ impl<'a> Runtime<'a> { }) .or_else(|_| env::var("EDITOR")) .map_err(|_| Error::from(EM::IO)) - .map_dbg(|s| format!("Editing with '{}'", s)) .and_then(|s| { + debug!("Editing with '{}'", s); let mut split = s.split_whitespace(); let command = split.next(); if command.is_none() { diff --git a/lib/core/libimagstore/src/store.rs b/lib/core/libimagstore/src/store.rs index f30b43a3..b7ffa35d 100644 --- a/lib/core/libimagstore/src/store.rs +++ b/lib/core/libimagstore/src/store.rs @@ -47,9 +47,6 @@ use crate::file_abstraction::FileAbstractionInstance; use crate::file_abstraction::fs::FSFileAbstraction; use crate::file_abstraction::inmemory::InMemoryFileAbstraction; -use libimagutil::debug_result::*; - - #[derive(Debug, PartialEq)] enum StoreEntryStatus { Present, @@ -199,8 +196,7 @@ impl Store { backend .create_dir_all(&location) - .context(format_err!("StorePathCreate: {}", location.display())) - .map_dbg_err_str("Failed")?; + .context(format_err!("StorePathCreate: {}", location.display()))?; } else if location.is_file() { debug!("Store path exists as file"); return Err(format_err!("StorePathExists: {}", location.display())); diff --git a/lib/domain/libimaghabit/src/habit.rs b/lib/domain/libimaghabit/src/habit.rs index bcf0aa3f..68a85f32 100644 --- a/lib/domain/libimaghabit/src/habit.rs +++ b/lib/domain/libimaghabit/src/habit.rs @@ -270,7 +270,6 @@ pub mod builder { use libimagstore::storeid::StoreId; use libimagstore::store::FileLockEntry; use libimagentryutil::isa::Is; - use libimagutil::debug_result::DebugResult; use failure::Error; use failure::Fallible as Result; @@ -321,17 +320,14 @@ pub mod builder { format_err!("Habit builder missing: {}", s) } - let name = self.name - .ok_or_else(|| mkerr("name")) - .map_dbg_str("Success: Name present")?; + let name = self.name.ok_or_else(|| mkerr("name"))?; + debug!("Success: Name present"); - let dateobj = self.basedate - .ok_or_else(|| mkerr("date")) - .map_dbg_str("Success: Date present")?; + let dateobj = self.basedate.ok_or_else(|| mkerr("date"))?; + debug!("Success: Date present"); - let recur : String = self.recurspec - .ok_or_else(|| mkerr("recurspec")) - .map_dbg_str("Success: Recurr spec present")?; + let recur : String = self.recurspec.ok_or_else(|| mkerr("recurspec"))?; + debug!("Success: Recurr spec present"); if let Some(until) = self.untildate { debug!("Success: Until-Date present"); diff --git a/lib/entry/libimagentrylink/src/storecheck.rs b/lib/entry/libimagentrylink/src/storecheck.rs index eab8eccf..f78d52cc 100644 --- a/lib/entry/libimagentrylink/src/storecheck.rs +++ b/lib/entry/libimagentrylink/src/storecheck.rs @@ -21,7 +21,6 @@ use std::collections::HashMap; use libimagstore::store::Store; use libimagstore::storeid::StoreId; -use libimagutil::debug_result::DebugResult; use failure::ResultExt; use failure::Fallible as Result; @@ -145,29 +144,19 @@ impl StoreLinkConsistentExt for Store { Ok(()) }; - aggregate_link_network(&self) - .map_dbg_str("Aggregated") - .map_dbg(|nw| { - let mut s = String::new(); - for (k, v) in nw { - s.push_str(&format!("{}\n in: {:?}\n out: {:?}", k, v.incoming, v.outgoing)); - } - s - }) - .and_then(|nw| { - all_collected_storeids_exist(&nw) - .map(|_| nw) - .context(err_msg("Link handling error")) - .map_err(Error::from) - }) - .and_then(|nw| { - for (id, linking) in nw.iter() { - incoming_links_exists_as_outgoing_links(id, linking, &nw)?; - outgoing_links_exist_as_incoming_links(id, linking, &nw)?; - } - Ok(()) - }) - .map(|_| ()) + let nw = aggregate_link_network(&self)?; + + for (k, v) in nw.iter() { + debug!("{}\n in: {:?}\n out: {:?}", k, v.incoming, v.outgoing); + } + + all_collected_storeids_exist(&nw).context("Link handling error")?; + + for (id, linking) in nw.iter() { + incoming_links_exists_as_outgoing_links(id, linking, &nw)?; + outgoing_links_exist_as_incoming_links(id, linking, &nw)?; + } + Ok(()) } } diff --git a/lib/entry/libimagentryurl/src/iter.rs b/lib/entry/libimagentryurl/src/iter.rs index 4a22a6b1..f899cb38 100644 --- a/lib/entry/libimagentryurl/src/iter.rs +++ b/lib/entry/libimagentryurl/src/iter.rs @@ -32,9 +32,10 @@ use libimagentrylink::link::Link; use libimagentrylink::iter::LinkIter; use libimagstore::store::Store; -use libimagutil::debug_result::DebugResult; use failure::Fallible as Result; +use failure::ResultExt; +use failure::Error; use url::Url; /// Helper for building `OnlyUrlIter` and `NoUrlIter` @@ -170,14 +171,15 @@ impl<'a> Iterator for UrlIter<'a> { debug!("Retrieving entry for id: '{:?}'", id); self.1 .retrieve(id.clone()) - .map_dbg_err(|_| format!("Retrieving entry for id: '{:?}' failed", id)) + .with_context(|e| format!("Retrieving entry for id: '{:?}' failed: {}", id, e)) .map_err(From::from) .and_then(|f| { debug!("Store::retrieve({:?}) succeeded", id); debug!("getting uri link from file now"); f.get_url() - .map_dbg_str("Error happened while getting link URI from FLE") - .map_dbg_err(|e| format!("URL -> Err = {:?}", e)) + .context("Error happened while getting link URI from FLE") + .with_context(|e| format!("URL -> Err = {:?}", e)) + .map_err(Error::from) }) }); diff --git a/lib/entry/libimagentryurl/src/linker.rs b/lib/entry/libimagentryurl/src/linker.rs index 175ffcea..b38463e3 100644 --- a/lib/entry/libimagentryurl/src/linker.rs +++ b/lib/entry/libimagentryurl/src/linker.rs @@ -20,10 +20,10 @@ use libimagstore::storeid::StoreId; use libimagstore::store::Store; use libimagstore::store::Entry; -use libimagutil::debug_result::DebugResult; use libimagentrylink::linkable::Linkable; use failure::Fallible as Result; +use failure::ResultExt; use url::Url; use sha1::{Sha1, Digest}; use hex; @@ -93,7 +93,7 @@ impl UrlLinker for Entry { links.into_iter().map(|link| { let hash = hex::encode(Sha1::digest(&link.as_str().as_bytes())); let file_id = crate::module_path::new_id(hash.clone()) - .map_dbg_err(|_| format!("Failed to build StoreId for this hash '{:?}'", hash))?; + .with_context(|e| format!("Failed to build StoreId for this hash '{:?}': {}", hash, e))?; debug!("Link = '{:?}'", link); debug!("Hash = '{:?}'", hash); @@ -105,9 +105,7 @@ impl UrlLinker for Entry { // exist let mut file = store .retrieve(file_id.clone()) - .map_dbg_err(|_| { - format!("Failed to create or retrieve an file for this link '{:?}'", link) - })?; + .with_context(|e| format!("Failed to create or retrieve an file for this link '{:?}': {}", link, e))?; debug!("Generating header content!"); file.set_url(link)?; diff --git a/lib/etc/libimagutil/src/debug_option.rs b/lib/etc/libimagutil/src/debug_option.rs deleted file mode 100644 index 4f27279a..00000000 --- a/lib/etc/libimagutil/src/debug_option.rs +++ /dev/null @@ -1,28 +0,0 @@ -// -// imag - the personal information management suite for the commandline -// Copyright (C) 2015-2019 Matthias Beyer <mail@beyermatthias.de> and contributors -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; version -// 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -// - -// Generates a extension for the `Option<T>`, named `DebugOption` which has functionality to -// print `T` via `debug!()`. -generate_option_logging_extension!( - DebugOption, - map_dbg, - map_dbg_str, - |s| { debug!("{}", s); } -); - diff --git a/lib/etc/libimagutil/src/debug_result.rs b/lib/etc/libimagutil/src/debug_result.rs deleted file mode 100644 index dad06723..00000000 --- a/lib/etc/libimagutil/src/debug_result.rs +++ /dev/null @@ -1,29 +0,0 @@ -// -// imag - the personal information management suite for the commandline -// Copyright (C) 2015-2019 Matthias Beyer <mail@beyermatthias.de> and contributors -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; version -// 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -// - -// Generates a extension for the `Result<T, E>`, named `DebugResult` which has functionality to -// print either `T` or `E` via `debug!()`. -generate_result_logging_extension!( - DebugResult, - map_dbg, - map_dbg_str, - map_dbg_err, - map_dbg_err_str, - |s| { debug!("{}", s); } -); diff --git a/lib/etc/libimagutil/src/lib.rs b/lib/etc/libimagutil/src/lib.rs index 08de2392..77ee632b 100644 --- a/lib/etc/libimagutil/src/lib.rs +++ b/lib/etc/libimagutil/src/lib.rs @@ -47,8 +47,6 @@ extern crate chrono; #[macro_use] mod log_option; pub mod cli_validators; pub mod date; -pub mod debug_result; -pub mod debug_option; pub mod edit; pub mod info_result; pub mod info_option; |