Crate expect_exit[−][src]
Expand description
Display an error message and exit without a panic.
The expect-exit
library defines the Expected
, ExpectedWithError
,
and ExpectedResult
traits and implements them for the standard
Result
and Option
types as appropriate. This allows a program to display an error message
and exit with a non-zero exit code without invoking a Rust panic, yet
optionally unwinding the stack so that various objects may perform some
clean-up actions.
The methods with an _e
suffix append an appropriate error message to
the supplied one. The methods with a _
suffix allow the caller to
specify an already-constructed message instead of a function that
returns it.
use std::collections::HashMap; use std::env; use expect_exit::{Expected, ExpectedWithError}; let mut vars: HashMap<String, String> = ["HOME", "PATH", "LOGNAME"] .iter() .map(|name| { ( name.to_string(), env::var(name).or_exit_e(|| format!("No '{} in the environment", name)), ) }) .collect(); vars.insert( "PWD".to_string(), env::current_dir() .or_exit_e_("Could not determine the current directory") .to_str() .or_exit_("Could not represent the path to the current directory") .to_string(), ); println!("{:?}", vars); if !vars["PWD"].starts_with("/") { expect_exit::exit("Expected an absolute path to the current directory"); }
The traits are currently implemented for the standard
Option
and
Result
types as appropriate.
For the crate’s change history, see the NEWS.md file in the source distribution.
Structs
ExpectationFailed | The error object returned by the |
Traits
Expected | Unwrap or exit with the specified message. |
ExpectedResult | Test the value and return a result object containing either the inner value or an error object that, when displayed, will provide the specified error message. |
ExpectedWithError | Unwrap or exit with an appropriate error message. |
Functions
die | Display the specified message, then exit without unwinding the stack. |
die_perror | Display the specified message and append an appropriate description of the error, then exit without unwinding the stack. |
exit | Display the specified message, then unwind the stack and exit. |
exit_perror | Display the specified message and append an appropriate description of the error, then unwind the stack and exit. |
exit_unwind | Unwind the stack and end the process with the specified exit code. |