5 个版本

0.2.3 2023年1月30日
0.2.2 2022年11月4日
0.2.1 2022年5月31日
0.2.0 2022年2月28日
0.1.0 2021年8月15日

#6 in #nydus

38 月下载量
5 个crate中使用 (直接使用 3)

Apache-2.0 OR BSD-3-Clause

11KB
173 代码行(不含注释)

nydus-error

nydus-error crate 是一个用于处理 Nydus 图像服务项目错误码的辅助工具集合,它提供

  • macro define_error_macro!() 以可选方式增强 Posix errno 的回溯信息。
  • macro einval!(), enoent!() 等常用错误码。
  • struct ErrorHolder 提供一个循环缓冲区来存储最新的错误消息。

支持

平台:

  • x86_64
  • aarch64

操作系统:

  • Linux

使用

nydus-error 添加到 Cargo.toml 的依赖项中

[dependencies]
nydus-error = "*"

如果需要,请将 extern crate nydus-error; 添加到您的 crate 根目录中。

示例

  • 返回带回溯信息的错误
fn check_size(size: usize) -> std::io::Result<()> {
    if size > 0x1000 {
        return Err(einval!());
    }

    Ok(())
}
  • 将错误消息放入一个 ErrorHolder 对象中。
fn record_error(size: usize) {
    let mut holder = ErrorHolder::new(10, 80);
    let error_msg = "123456789";
    let r = holder.push(error_msg);

    assert_eq!(r.is_ok(), true);
    let _msg = holder.export().unwrap();
}

许可

此代码受 Apache-2.0BSD-3-Clause 许可证的保护。

依赖项

~3–5MB
~107K SLoC