# 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 ```rust use error_hook::{self, hook}; #[hook(e => tracing::error!("{e}"))] // <- #[tracing::instrument] async fn test(a: i32, b: i32) -> error_hook::Result { 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 ```shell 2023-03-04T06:23:33.048087Z ERROR test{a=888888888 b=888888888}: example: overflow ```