Expand description
Exports traits and aliased types to support the most common use-cases
(when neither core::error::Error nor std are available).
In Rust versions before v1.81, core::error::Error is not stable.
In #![no_std] builds before Rust v1.81,
std::error::Error is not available either.
This prelude exports the surrogate error trait Reportable and
type aliases that can be used in these cases.
Consider using Rust v1.81 or newer, or (if that’s not possible)
consider enabling the std feature. Doing either makes
the “regular” lazy_errors::prelude::* available.
Types exported from the “regular” prelude
are compatible with other crates.
When using any container from lazy_errors, such as lazy_errors::Error
or lazy_errors::ErrorStash, you usually don’t want to specify the
inner error type I explicitly.
This prelude exports type aliases for all types that otherwise need
the I parameter. The specific type used as I makes the aliased types
from the prelude well suited for the common
“just bail out now (or later)” use case.
Usually, anything that you want to treat as an error can be boxed
into a lazy_errors::Stashable.
When core::error::Error is not available and
you don’t want to introduce a dependency on std,
you need an alternative to lazy_errors::Stashable.
Reportable is a surrogate for std::error::Error/core::error::Error.
lazy_errors::surrogate_error_trait::Stashable is for
Reportable what lazy_errors::Stashable is for core::error::Error.
Also, using the 'static bound for the trait object usually works fine.
Thus, Stashable<'static> is the inner error type I for all
container type aliases exported by this prelude. We also define and export
Stashable as an alias for Stashable<'static> for
readability, ergonomics, and maintainability.
If you want to use different inner error types, you can go ahead and use the container and wrapper types from this library directly. In that case, please check out the example in the crate root documentation.
Re-exports§
pub use crate::OrCreateStash;pub use crate::OrStash;pub use crate::OrWrap;pub use crate::OrWrapWith;pub use crate::StashErr;pub use crate::TryCollectOrStash;pub use crate::TryMapOrStash;
Macros§
- err
- Creates an ad-hoc
Errorfrom some message or format string. - try2
- Works like the
?operator onStashedResultshould.
Type Aliases§
- AdHoc
Error - Type alias for
crate::AdHocErrorto get access to all error types by importinglazy_errors::surrogate_error_trait::prelude::*. - Error
- Type alias for
crate::Errorto use a boxed inner error typeI, as explained in the module documentation. - Error
Data - Type alias for
crate::ErrorDatato use a boxed inner error typeI, as explained in the module documentation. - Error
Stash - Type alias for
crate::ErrorStashto use a boxed inner error typeI, as explained in the module documentation. - Stash
With Errors - Type alias for
crate::StashWithErrorsto use a boxed inner error typeI, as explained in the module documentation. - Stashable
- Type alias for
super::Stashableto use a'staticbound for the boxed inner error typeItrait object, as explained in the module documentation. - Stashed
Errors - Type alias for
crate::StashedErrorsto use a boxed inner error typeI, as explained in the module documentation. - Stashed
Result - Type alias for
crate::StashedResultto use a boxed inner error typeI, as explained in the module documentation. - Wrapped
Error - Type alias for
crate::WrappedErrorto use a boxed inner error typeI, as explained in the module documentation.