#error #tiny #error-message #traits #able #propagation #items

tiny-error

一个简单的错误处理小库

1 个稳定版本

1.0.0 2023 年 7 月 23 日

#2224Rust 模式

MIT/Apache

6KB

tiny-error

一个用于错误处理的微型库。它可以将 Error 特性的项目转换为它们的消息,从而实现易于传播。

示例

use tiny_error::ErrorMessage;

use std::{
    env,
    fs,
    path::PathBuf,
};

fn main() -> Result<(), ErrorMessage> {
    // Text when failed:
    // Error: Invalid input
    // Correct Usage: `[crate_name] example/file/path.txt`
    let path = get_path()?;
    // Text when failed: 
    // Error: No such file or directory (os error 2)
    let file = fs::read_to_string(path)?;

    Ok(())
}

// Gets the first argument passed. If none or more were, returns an
// `ErrorMessage`.
fn get_path() -> Result<PathBuf, ErrorMessage> {
    let mut args = env::args().skip(1);
    let arg = args.next().filter(|_| args.next().is_none());    

    arg
        .map(|input| input.into())
        .ok_or_else(|| ErrorMessage::new(
            "Invalid input\n\
             Correct Usage: `[crate_name] example/file/path.txt`"
        ))
}

无运行时依赖