7个版本

0.1.6 2024年7月1日
0.1.5 2024年3月27日
0.1.3 2024年2月27日
0.1.0 2023年12月27日

#2139 in 过程宏

Download history 2/week @ 2024-04-08 6/week @ 2024-05-20 9/week @ 2024-06-03 5/week @ 2024-06-10 5/week @ 2024-06-24 157/week @ 2024-07-01 25/week @ 2024-07-22

182 每月下载量
用于 conerror

MIT 许可证

4KB
81

Conerror

conerror 是一个Rust库,旨在自动添加错误上下文,通过在错误消息中包含文件名、行号和函数名,使问题跟踪和调试更加容易。

特性

  • 自动为错误添加上下文。
  • 与实现了 std::error::Error 的任何错误类型一起工作。
  • 提供详细的错误跟踪。

示例

以下是一个基本示例,演示如何使用 conerror 宏添加错误上下文

use conerror::conerror;
use std::fs::read;

fn main() {
    if let Err(e) = func1() {
        println!("{}", e);
    }
}

#[conerror]
fn func1() -> conerror::Result<()> {
    func2()?;
    Ok(())
}

#[conerror]
fn func2() -> conerror::Result<()> {
    Read.read()?;
    Ok(())
}

struct Read;

#[conerror]
impl Read {
    #[conerror]
    fn read(&self) -> conerror::Result<()> {
        read("/root")?;
        Ok(())
    }
}

输出

当运行上述示例时,它将生成以下输出

Permission denied (os error 13)
#0 src/main.rs:28 untitled::Read::read()
#1 src/main.rs:18 untitled::func2()
#2 src/main.rs:12 untitled::func1()

依赖项

~260–700KB
~17K SLoC