Expand description
Convenience re-exports for quick starts Convenience re-exports for common usage patterns.
This prelude module provides the most commonly used items for quick starts. Import everything with:
use error_rail::prelude::*;§What’s Included
- Macros:
context!,group!,rail! - Types:
ComposableError,ErrorContext,ErrorPipeline,LazyGroupContext - Traits:
ResultExt,BoxedResultExt,IntoErrorContext
§Examples
§30-Second Quick Start
use error_rail::prelude::*;
fn load_config() -> BoxedResult<String, std::io::Error> {
// Simulate an error
let err = std::io::Error::new(std::io::ErrorKind::NotFound, "config not found");
Err(err).ctx(group!(
message("loading configuration"),
location(file!(), line!())
))
}
let result = load_config();
assert!(result.is_err());§With Lazy Context (2.1x Faster)
use error_rail::prelude::*;
fn process_user(id: u64) -> BoxedResult<(), &'static str> {
let result: Result<(), &str> = Err("not found");
result.ctx_with(|| format!("processing user {}", id))
}
let result = process_user(100);
assert!(result.is_err());Re-exports§
pub use crate::context;pub use crate::context;pub use crate::types::ComposableError;pub use crate::types::ErrorContext;pub use crate::types::ErrorPipeline;pub use crate::traits::BoxedResultExt;pub use crate::traits::IntoErrorContext;pub use crate::traits::ResultExt;
Macros§
- context
- Creates a lazily-evaluated error context that defers string formatting.
- group
- Creates a grouped error context that combines multiple context types.
- rail
- Wraps a
Result-producing expression or block and converts it into aBoxedComposableResult. - rail_
unboxed - Wraps a
Result-producing expression or block and converts it into an unboxedComposableResult.
Type Aliases§
- Boxed
Result - Convenient result type alias for functions returning boxed composable errors.