3 个版本 (破坏性更新)

使用旧的 Rust 2015

0.5.0 2024年3月7日
0.4.0 2023年1月10日
0.3.3 2021年1月16日

#451命令行实用工具

Download history 2/week @ 2024-04-15 15/week @ 2024-04-22 77/week @ 2024-04-29 64/week @ 2024-05-13 31/week @ 2024-05-20 6/week @ 2024-05-27 18/week @ 2024-06-03 14/week @ 2024-06-10 14/week @ 2024-06-17 32/week @ 2024-06-24 32/week @ 2024-07-01 2/week @ 2024-07-08 28/week @ 2024-07-15 11/week @ 2024-07-22 89/week @ 2024-07-29

130 每月下载量
4 crates 中使用

MIT 许可证

16KB
164

die-exit

GitHub GitHub Workflow Status Latest Version Documentation

die-exit 是一个简单的 Rust 库,用于使命令行程序中的错误处理和退出变得容易。它是从 die 库派生出来的,但包括一个额外的 test 功能,该功能将退出行为替换为对 panic! 的调用,以方便测试。

Cargo.toml

[dependencies]
die-exit = "0.5"

[dev-dependencies.die-exit]
version = "0.5"
features = ["test", "red"]

示例使用

use die_exit::*;
// Result:
Ok(1).die("no number"); // unwraps to 1 successfully
Err("failure").die("strange error"); // prints `strange error` to stderr then exits with code 1

// Option:
Some(1).die("no number"); // unwraps to 1 successfully
None.die("none option"); // prints `none option` to stderr then exits with code 1

// custom error codes:
Err("failure").die_code("strange error", 4); // prints `strange error` to stderr then exits with code 4
None.die_code("none option", 5); // prints `none option` to stderr then exits with code 5

// with function (Result only):
Err("failure").die_with(|error| format!("strange error: {}", error)); // prints `strange error: failure` to stderr then exits with code 1
Err("failure").die_with(|error| (format!("strange error: {}", error), 6)); // prints `strange error: failure` to stderr then exits with code 6

// die! macro:
die!("argument to -e must be numeric"); // prints message to stderr then exits with code 1
die!(2; "argument to -e must be numeric"); // prints message to stderr then exits with code 2
die!("argument to -e must be numeric"; 3); // prints message to stderr then exits with code 3
die!("argument {} must be {}", "-e", 1; 4); // prints `argument -e must be 1` to stderr then exits with code 4
die!("argument {} must be {}", "-e", 1); // prints `argument -e must be 1` to stderr then exits with code 1
die!(2); // prints nothing, only exits with code 3
die!(); // prints nothing, only exits with code 1

示例测试

确保已启用 test 功能。

#[cfg(test)]
mod tests {
    use super::*;
    use die_exit::*;

    #[test]
    #[should_panic]
    fn die_test() {
        die!("Die works in tests!"; exit_codes::COMPILER_ERROR);
    }
}

cargo 功能

  • test: 如果您想在可能使用 die 的测试中运行测试,请启用此功能。这将更改 die 和其变体的行为,以调用 panic!() 而不是 process::exit()
  • red: 红色和加粗输出。

许可证

本项目采用 MIT 许可证(LICENSE-MIT http://opensource.org/licenses/MIT

无运行时依赖

功能