From 7bc23b4865b39b9af900d7e2643ef1315793ba18 Mon Sep 17 00:00:00 2001 From: Botahamec Date: Sun, 23 Oct 2022 12:40:26 -0400 Subject: Added the result extensions --- src/lib.rs | 2 ++ src/result.rs | 26 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 src/result.rs (limited to 'src') diff --git a/src/lib.rs b/src/lib.rs index 8364300..20d9580 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -8,6 +8,8 @@ extern crate alloc; mod exun; #[cfg(feature = "alloc")] +mod result; +#[cfg(feature = "alloc")] mod unexpected; pub use exun::*; diff --git a/src/result.rs b/src/result.rs new file mode 100644 index 0000000..d5de01b --- /dev/null +++ b/src/result.rs @@ -0,0 +1,26 @@ +#[cfg(feature = "std")] +use std::error::Error; + +use crate::{unexpected::Errorable, UnexpectedError}; + +#[cfg(feature = "std")] +trait ResultErrorExt { + fn unexpect(self) -> Result; +} + +#[cfg(feature = "std")] +impl ResultErrorExt for Result { + fn unexpect(self) -> Result { + self.map_err(UnexpectedError::new) + } +} + +trait ResultMsgExt { + fn unexpect_msg(self) -> Result; +} + +impl ResultMsgExt for Result { + fn unexpect_msg(self) -> Result { + self.map_err(UnexpectedError::msg) + } +} -- cgit v1.2.3