5 个版本 (1 个稳定版本)

1.0.0 2021年5月4日
0.3.1 2020年2月15日
0.3.0 2019年12月21日
0.2.0 2019年9月18日
0.1.0 2019年6月20日

#10 in #chain

Download history 578/week @ 2024-03-24 333/week @ 2024-03-31 288/week @ 2024-04-07 373/week @ 2024-04-14 327/week @ 2024-04-21 272/week @ 2024-04-28 347/week @ 2024-05-05 299/week @ 2024-05-12 326/week @ 2024-05-19 318/week @ 2024-05-26 323/week @ 2024-06-02 298/week @ 2024-06-09 305/week @ 2024-06-16 289/week @ 2024-06-23 201/week @ 2024-06-30 277/week @ 2024-07-07

1,112 每月下载量
18 crates 中使用

MIT 许可证

14KB
192

Easy-error

docs.rs crates.io MIT License Rustc 1.46+ Pipeline

这个 crate 是一个轻量级的错误处理库,旨在与标准的 Error 特性良好地协同工作。它适用于快速原型设计或命令行应用程序,其中任何错误都会直接反馈给用户。这个 crate 有四个主要组件

  1. 一个基于字符串的基本错误类型,适用于快速原型设计或面向人类的错误。
  2. 一种优雅的方式遍历错误的起因。
  3. 一些宏,使错误返回更加便捷。
  4. 一个“终止”类型,当从 main 函数返回时会产生格式良好的错误消息。

Rust 版本要求

当前版本需要 Rustc 1.46 或更高版本。一般来说,这个 crate 可以与支持的最老版本的 Ubuntu LTS 上的 Rustc 版本进行编译。任何需要比支持的最老版本的 Ubuntu LTS 上的 Rustc 更新版本的改变都将被视为重大更改。

示例

use std::{fs::File, io::Read};
use easy_error::{bail, ensure, Error, ResultExt, Terminator};

fn from_file() -> Result<i32, Error> {
    let file_name = "example.txt";
    let mut file = File::open(file_name).context("Could not open file")?;

    let mut contents = String::new();
    file.read_to_string(&mut contents).context("Unable to read file")?;

    contents.trim().parse().context("Could not parse file")
}

fn validate(value: i32) -> Result<(), Error> {
    ensure!(value > 0, "Value must be greater than zero (found {})", value);

    if value % 2 == 1 {
        bail!("Only even numbers can be used");
    }

    Ok(())
}

fn main() -> Result<(), Terminator> {
    let value = from_file().context("Unable to get value from file")?;
    validate(value).context("Value is not acceptable")?;

    println!("Value = {}", value);
    Ok(())
}

无运行时依赖