14 个版本 (1 个稳定版)

1.0.0 2022 年 3 月 3 日
0.2.5 2021 年 6 月 5 日
0.2.0 2021 年 5 月 27 日
0.1.6 2021 年 5 月 27 日

#1912Rust 模式


4 crates 中使用

CC0 许可证

14KB
284

ees:简单的错误处理库

ees 是一个简单的错误处理库。它不提供自己的错误相关类型,而是使用 std::error::Error 并提供了一些便利函数。

use std::io::Read;

// Use ees::Error for arbitrary owned errors
// You can also use ees::Result<()> as a shorthand
fn do_work() -> Result<(), ees::Error> {
    let mut file = std::fs::File::open("hello world")?;
    let mut contents = String::new();
    file.read_to_string(&mut contents)?;
    if contents.is_empty() {
        // Construct an error on the fly
        ees::bail!("file is empty");
    }
    Ok(())
}

// Take an arbitrary borrowed error
fn take_an_error(error: ees::ErrorRef<'_>) {
    // Print the complete error chain
    println!("Error: {}", ees::print_error_chain(error));
}

// Use ees::MainResult to automatically create nicely-
// formatted error messages in the main() function
fn main() -> ees::MainResult {
    do_work()?;
    do_work().map_err(
        // add additional context
        |e| ees::wrap!(e, "failed to do work"))?;
    Ok(())
}

无运行时依赖