error_hook_attr

Crates.ioerror_hook_attr
lib.rserror_hook_attr
version0.1.2
sourcesrc
created_at2023-03-04 04:58:16.637363
updated_at2023-03-04 23:13:49.962866
descriptionerror hook
homepage
repositoryhttps://github.com/LoliGothick/error_hook
max_upload_size
id800369
size3,522
Mitama (loliGothicK)

documentation

README

error_hook_attr

This library supplements hook macro attribute to hook error conversion (please use the re-exported macro from error_hook via feature attribute).

Example

use error_hook::{self, hook};

#[hook(e => tracing::error!("{e}"))] // <-
#[tracing::instrument]
async fn test(a: i32, b: i32) -> error_hook::Result<i32> {
    a.checked_mul(b).ok_or(anyhow::anyhow!("overflow"))
}

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    tracing_subscriber::fmt()
        .with_max_level(tracing::Level::INFO)
        .init();

    let ans = test(888888888, 888888888).await?;
    println!("{ans}");

    Ok(())
}

output

2023-03-04T06:23:33.048087Z ERROR test{a=888888888 b=888888888}: example: overflow
Commit count: 15

cargo fmt