#logging #log #unwrap #default #tracing #logging-tracing

unwrap-log

Non-panicking alternatives to Option and Result unwrapping, which log at warn level

2 releases

0.1.1 Aug 6, 2023
0.1.0 Aug 6, 2023

#639 in Debugging

Unlicense OR MIT

9KB
133 lines

unwrap-log

Non-panicking alternatives to Option and Result unwrapping, which log at warn level.

License: MIT License: Unlicense crates.io docs.rs

Example

use unwrap_log::{OptionExt, ResultExt};
use env_logger::Builder;
use log::LevelFilter::Warn;

Builder::new().filter_level(Warn).init();

let x: i32 = None.unwrap_or_default_log();
assert_eq!(x, 0);

let y: i32 = Err("oops").unwrap_or_default_log();
assert_eq!(y, 0);

Output:

[1970-01-01T00:00:00Z WARN  my_crate] src\main.rs:8:23 encountered `None`
[1970-01-01T00:00:00Z WARN  my_crate] src\main.rs:11:30 encountered `Err("oops")`

Dependencies

~87KB