Handle errors and exit in command line programs easily
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Travis Burtrum 5b79867caa Version 0.2.0 3 months ago
src Version 0.2.0 3 months ago
.gitignore Version 0.1.0 3 months ago
.travis.yml Version 0.2.0 3 months ago
Cargo.lock Version 0.2.0 3 months ago
Cargo.toml Version 0.2.0 3 months ago
LICENSE-APACHE Version 0.1.0 3 months ago
LICENSE-MIT Version 0.1.0 3 months ago
README.md Version 0.2.0 3 months ago

README.md

die

Build Status Latest Version Documentation

die is a simple Rust library to make it easy to handle errors and exit in command line programs.

# Cargo.toml
[dependencies]
die = "0.2"

Example usage:

use die::Die;
// 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

// 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

License

This project is licensed under either of

at your option.

Contribution

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