Skip to main content

Crate fatal

Crate fatal 

Source
Expand description

Utilities for reporting fatal errors and exiting with an error code.

The behavior in this crate is different than the one in panic!-based exits, in that the ones here are suited for display to end-users, i.e. no “thread main panicked at”, no backtrace mentions, etc.

§Usage

For unwrapping Results:

For aborting:

§(Pseudo-)Example:

use fatal::UnwrapExt;

const DB_CONSTR_VAR: &str = "DB_CONNECTION_STRING";

fn main() {
    println!("Connecting..");
    let constr: String = fatal::unwrap_message!(std::env::var(DB_CONSTR_VAR), "failed to read the `{}` environment variable", DB_CONSTR_VAR);
    // when doesn't exist, will print: "Error: failed to read the `DB_CONNECTION_STRING` environment variable (environment variable not found)"
    let db: Database = Database::connect(&constr).expect_fatal("failed to connect to database");
    // would also include the actual error as above.

    println!("Querying total users..");
    println!("Total users: {}", db.query_total_users().unwrap_fatal());
}

Macros§

error
Prints an error message to standard-error and exits with an error code.
fatal
Prints to standard-error and exits with an error-code. Returns !.
unwrap_format
Unwraps the result or formats an error message and exits.
unwrap_message
Unwraps the result or reports the error with the error description and exits.

Traits§

UnwrapExt
An extension trait for unwrap.

Functions§

expect
Unwraps a result or reports the given message with the error and exits.
unwrap
Unwraps a result or reports its error and exits.