summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBotahamec <botahamec@outlook.com>2023-08-09 09:55:12 -0400
committerBotahamec <botahamec@outlook.com>2023-08-09 09:55:12 -0400
commita9f00c924fc816bd8103b4b05574f02fc4d1966f (patch)
treef7f0e1bba4a8eafd24dfd82fc6856a085698b887
parenta799c00192ac6ecc9a384bc0fce46b10b38def60 (diff)
Allow the ResultExunExt to be used without alloc
-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)