summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib.rs9
-rw-r--r--src/result.rs4
2 files changed, 9 insertions, 4 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 7b1e787..2803b5d 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -142,18 +142,19 @@
extern crate alloc;
mod exun;
-#[cfg(feature = "alloc")]
mod result;
-#[cfg(feature = "alloc")]
mod unexpected;
-pub use crate::exun::Exun;
#[cfg(feature = "std")]
pub use result::ResultErrorExt;
+
#[cfg(feature = "alloc")]
-pub use result::{ResultExunExt, ResultMsgExt};
+pub use result::ResultMsgExt;
#[cfg(feature = "alloc")]
pub use unexpected::{RawUnexpected, UnexpectedError};
+
+pub use crate::exun::Exun;
+pub use result::ResultExunExt;
pub use Exun::{Expected, Unexpected};
/// A type alias for [`Exun<E, RawUnexpected>`]
diff --git a/src/result.rs b/src/result.rs
index d876a0c..344de5b 100644
--- a/src/result.rs
+++ b/src/result.rs
@@ -66,12 +66,14 @@ impl<T, E: Error + Send + Sync + 'static> ResultErrorExt<T> for Result<T, E> {
}
}
+#[cfg(feature = "alloc")]
impl<T> ResultErrorExt<T> for Result<T, RawUnexpected> {
fn unexpect(self) -> Self {
self
}
}
+#[cfg(feature = "alloc")]
impl<T> ResultErrorExt<T> for Option<T> {
fn unexpect(self) -> Result<T, RawUnexpected> {
self.ok_or_else(RawUnexpected::none)
@@ -81,6 +83,7 @@ impl<T> ResultErrorExt<T> for Option<T> {
/// Provides [`Result::unexpect_msg`]
///
/// [`Result::unexpect_msg`]: `ResultMsgExt::unexpect_msg`
+#[cfg(feature = "alloc")]
pub trait ResultMsgExt<T>: Sealed {
/// Converts [`Result<T, E>`] to [`Result<T, RawUnexpected>`].
///
@@ -123,6 +126,7 @@ pub trait ResultMsgExt<T>: Sealed {
fn unexpect_msg(self) -> Result<T, RawUnexpected>;
}
+#[cfg(feature = "alloc")]
impl<T, E: Errorable + 'static> ResultMsgExt<T> for Result<T, E> {
fn unexpect_msg(self) -> Result<T, RawUnexpected> {
self.map_err(RawUnexpected::msg)