From eb8071440218a83a6bc95b52dc5d9b409a8da055 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Mon, 18 Apr 2016 17:11:56 +0200 Subject: [PATCH] HookError: Add optional non-aborting mode --- libimagstore/src/hook/error.rs | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/libimagstore/src/hook/error.rs b/libimagstore/src/hook/error.rs index afe9ef07..77095844 100644 --- a/libimagstore/src/hook/error.rs +++ b/libimagstore/src/hook/error.rs @@ -1,10 +1,23 @@ -generate_error_module!( - generate_error_types!(HookError, HookErrorKind, - HookExecutionError => "Hook exec error", - AccessTypeViolation => "Hook access type violation" - ); +use std::convert::Into; +generate_error_imports!(); + +generate_custom_error_types!(HookError, HookErrorKind, CustomData, + HookExecutionError => "Hook exec error", + AccessTypeViolation => "Hook access type violation" ); -pub use self::error::HookError; -pub use self::error::HookErrorKind; +#[derive(Debug, Clone, Eq, PartialEq, Ord, PartialOrd, Copy)] +pub struct CustomData { + aborting: bool, +} +impl HookError { + + pub fn is_aborting(&self) -> bool { + match self.custom_data { + Some(b) => b.aborting, + None => true + } + } + +}