diff --git a/src/aserror.rs b/src/aserror.rs index f440034..c036b7b 100644 --- a/src/aserror.rs +++ b/src/aserror.rs @@ -1,4 +1,5 @@ use std::error::Error; +use std::panic::UnwindSafe; pub trait AsDynError<'a> { fn as_dyn_error(&self) -> &(dyn Error + 'a); @@ -31,3 +32,10 @@ impl<'a> AsDynError<'a> for dyn Error + Send + Sync + 'a { self } } + +impl<'a> AsDynError<'a> for dyn Error + Send + Sync + UnwindSafe + 'a { + #[inline] + fn as_dyn_error(&self) -> &(dyn Error + 'a) { + self + } +}