2 个版本

0.1.1 2024 年 5 月 18 日
0.1.0 2024 年 4 月 12 日

#1826Rust 模式

Download history 11/week @ 2024-04-19 70/week @ 2024-04-26 9/week @ 2024-05-03 10/week @ 2024-05-10 163/week @ 2024-05-17 20/week @ 2024-05-24 3/week @ 2024-05-31 17/week @ 2024-06-07 97/week @ 2024-06-14 54/week @ 2024-06-21 45/week @ 2024-06-28 55/week @ 2024-07-05 24/week @ 2024-07-12 41/week @ 2024-07-19 79/week @ 2024-07-26 22/week @ 2024-08-02

169 每月下载量

MIT 许可证

5KB
56

ERDP

Crates.io Version

ERDP 是一个非常小的 Rust crate,用于帮助显示错误。如果您使用 std::fmt::Display 来显示一个 std::error::Error,如下面的代码所示

use std::fs::File;
use std::path::{Path, PathBuf};
use thiserror::Error;

fn main() {
    let path = PathBuf::from("config.json");

    if let Err(e) = load_config(&path) {
        eprintln!("Failed to load {}: {}.", path.display(), e);
    }
}

fn load_config(path: &Path) -> Result<(), MyError> {
    let file = match File::open(path) {
        Ok(v) => v,
        Err(e) => return Err(MyError::OpenFileFailed(e)),
    };

    Ok(())
}

#[derive(Debug, Error)]
enum MyError {
    #[error("couldn't open the specified file")]
    OpenFileFailed(#[source] std::io::Error),
}

您将得到的是一个顶层错误的简单消息

Failed to load config.json: couldn't open the specified file.

使用此 crate,您可以在错误值上使用 display 方法,例如

use erdp::ErrorDisplay;

eprintln!("Failed to load {}: {}.", path.display(), e.display());

那么输出将变为类似以下内容

Failed to load config.json: couldn't open the specified file -> No such file or directory.

许可证

MIT

无运行时依赖