Add helper for tracing error and exit or unwrap the value
This commit is contained in:
parent
ac704cab76
commit
eb4681bf65
1 changed files with 9 additions and 0 deletions
|
@ -114,13 +114,17 @@ fn print_trace_dbg(idx: u64, e: &Error) {
|
|||
///
|
||||
/// and variants
|
||||
pub trait MapErrTrace {
|
||||
type Output;
|
||||
|
||||
fn map_err_trace(self) -> Self;
|
||||
fn map_err_dbg_trace(self) -> Self;
|
||||
fn map_err_trace_exit(self, code: i32) -> Self;
|
||||
fn map_err_trace_exit_unwrap(self, code: i32) -> Self::Output;
|
||||
fn map_err_trace_maxdepth(self, max: u64) -> Self;
|
||||
}
|
||||
|
||||
impl<U, E: Error> MapErrTrace for Result<U, E> {
|
||||
type Output = U;
|
||||
|
||||
/// Simply call `trace_error()` on the Err (if there is one) and return the error.
|
||||
///
|
||||
|
@ -143,6 +147,11 @@ impl<U, E: Error> MapErrTrace for Result<U, E> {
|
|||
self.map_err(|e| { trace_error_exit(&e, code) })
|
||||
}
|
||||
|
||||
/// Helper for calling map_err_trace_exit(n).unwrap() in one call
|
||||
fn map_err_trace_exit_unwrap(self, code: i32) -> Self::Output {
|
||||
self.map_err_trace_exit(code).unwrap()
|
||||
}
|
||||
|
||||
/// Simply call `trace_error_maxdepth(max)` on the Err (if there is one) and return the error.
|
||||
///
|
||||
/// This does nothing besides the side effect of printing the error trace to a certain depth
|
||||
|
|
Loading…
Reference in a new issue