macro_rules! log_if_error {
(level:$level:tt, target: $target:expr, $msg:expr, $expr:expr $(,)*) => { ... };
(level:$level:tt, $msg:expr, $expr:expr $(,)*) => { ... };
(target: $target:expr, $msg:expr, $expr:expr $(,)*) => { ... };
($msg:expr, $expr:expr $(,)*) => { ... };
}Expand description
Log an error if an Err is returned from the $expr. If the given expression is Ok(v),
Some(v) is returned, otherwise None is returned (same as Result::ok).
Useful in cases where the error should be logged and ignored.
instead of writing if let Err(err) = my_error_call() { error!(...) }, you can write
log_if_error!(my_error_call())
ⓘ
let opt = log_if_error!(level: debug, target: "docs", "Error sending reply: {}", Result::<(), _>::Err("this will be logged"));
assert_eq!(opt, None);