From 5b781702cc8f93888bd68a3ee46d93955952e916 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Sun, 3 Sep 2017 16:00:08 +0200 Subject: [PATCH] libimagentryview: Rewrite error handling --- lib/entry/libimagentryview/src/builtin/editor.rs | 5 ++--- lib/entry/libimagentryview/src/error.rs | 10 +++++----- lib/entry/libimagentryview/src/lib.rs | 2 +- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/lib/entry/libimagentryview/src/builtin/editor.rs b/lib/entry/libimagentryview/src/builtin/editor.rs index 259d4986..be268acc 100644 --- a/lib/entry/libimagentryview/src/builtin/editor.rs +++ b/lib/entry/libimagentryview/src/builtin/editor.rs @@ -23,8 +23,8 @@ use libimagentryedit::edit::edit_in_tmpfile; use viewer::Viewer; use result::Result; +use error::ResultExt; use error::ViewErrorKind as VEK; -use error::ViewError as VE; pub struct EditorView<'a>(&'a Runtime<'a>); @@ -37,8 +37,7 @@ impl<'a> EditorView<'a> { impl<'a> Viewer for EditorView<'a> { fn view_entry(&self, e: &Entry) -> Result<()> { let mut entry = e.to_str().clone().to_string(); - edit_in_tmpfile(self.0, &mut entry) - .map_err(|e| VE::new(VEK::ViewError, Some(Box::new(e)))) + edit_in_tmpfile(self.0, &mut entry).chain_err(|| VEK::ViewError) } } diff --git a/lib/entry/libimagentryview/src/error.rs b/lib/entry/libimagentryview/src/error.rs index a7d29d52..f3d9a040 100644 --- a/lib/entry/libimagentryview/src/error.rs +++ b/lib/entry/libimagentryview/src/error.rs @@ -17,6 +17,10 @@ // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA // +use std::error::Error; + +use libimagerror::into::IntoError; + error_chain! { types { ViewError, ViewErrorKind, ResultExt, Result; @@ -51,10 +55,6 @@ error_chain! { } } -pub use self::error::ViewError; -pub use self::error::ViewErrorKind; -pub use self::error::MapErrInto; - impl IntoError for ViewErrorKind { type Target = ViewError; @@ -62,7 +62,7 @@ impl IntoError for ViewErrorKind { ViewError::from_kind(self) } - fn into_error_with_cause(self, cause: Box) -> Self::Target { + fn into_error_with_cause(self, _: Box) -> Self::Target { ViewError::from_kind(self) } } diff --git a/lib/entry/libimagentryview/src/lib.rs b/lib/entry/libimagentryview/src/lib.rs index 0cef0542..c7870970 100644 --- a/lib/entry/libimagentryview/src/lib.rs +++ b/lib/entry/libimagentryview/src/lib.rs @@ -40,7 +40,7 @@ extern crate toml; extern crate libimagstore; extern crate libimagrt; -#[macro_use] extern crate libimagerror; +extern crate libimagerror; extern crate libimagentryedit; pub mod error;