10 releases (stable)

2.0.2 Jul 25, 2024
2.0.1 Mar 14, 2023
2.0.0 Oct 4, 2022
1.0.3 Dec 28, 2021
0.3.0 Nov 23, 2020

#89 in Command-line interface

Download history 2881/week @ 2025-01-28 4020/week @ 2025-02-04 3686/week @ 2025-02-11 4648/week @ 2025-02-18 5351/week @ 2025-02-25 4502/week @ 2025-03-04 3241/week @ 2025-03-11 4192/week @ 2025-03-18 3963/week @ 2025-03-25 4615/week @ 2025-04-01 3940/week @ 2025-04-08 4163/week @ 2025-04-15 5425/week @ 2025-04-22 7069/week @ 2025-04-29 6933/week @ 2025-05-06 5144/week @ 2025-05-13

25,672 downloads per month
Used in 21 crates (19 directly)

MIT/Apache

31KB
262 lines

proc-exit

Exit codes for process termination

codecov Documentation License Crates Status

Features

  • i32 newtype for exit codes
    • Can represent any valid exit code
    • Type safe, operations are restricted to what is valid for exit codes
  • Includes standard exit codes and signal exit codes
  • Integrate with main, std::process, and std::io::Error
  • Supports exiting silently (error message reported through another means)

Install

Add to your Cargo.toml:

$ cargo add proc-exit

Relevant crates

Other crates that might be useful in testing command line programs.

  • duct for orchestrating multiple processes.
  • rexpect for controlling interactive programs.
  • assert_cmd can be reused to simplify controlling CLIs

Some crates that fill a similar role include:

  • sysexit
    • Uses an enum, making certain states unpresentable
    • Includes signals
    • Integrates with std::process and std::io::Error
    • Doesn't integrate with main
  • exit-code
    • i32 constants and helper methods
    • Doesn't include signals
    • Doesn't integrate with main, std::process, or std::io::Error
  • exitcode
    • i32 constants and helper methods
    • Doesn't include signals
    • Doesn't integrate with main, std::process, or std::io::Error
  • exitfailure
    • Allows Displayable errors to be used with ? in main()

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

No runtime deps