Module prelude

Module prelude 

Source
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

§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 a BoxedComposableResult.
rail_unboxed
Wraps a Result-producing expression or block and converts it into an unboxed ComposableResult.

Type Aliases§

BoxedResult
Convenient result type alias for functions returning boxed composable errors.