It's better than bad, it's good!
Log your Result
and Option
chains with inline methods.
Turn
match maybe_something {
Some(x) => Some(x),
None => {
debug!("Nothing found!");
None
}
}.
into
maybe_something.debug_none("Nothing found!")
This becomes handy when you start chaining from results
use logchop::*;
parse_id_string(id_str)
.trace_ok("Found id")
.debug_err("Couldn't parse ID")
.map_or_else(|id| get_widget_by_id(id), |_| get_default_widget())
.info_ok_format(|widget| format!("Found widget: {}", widget.name))
# Sucessful parse result
[trace] Found id: 12
[info ] Found widget: chainsaw
# Error parsing result
[debug] Couldn't parse ID: Invalid format
[info ] Found widget: concilation prize
Say goodbye to unnecessary blocks!
Add the following to your Cargo.toml
:
logchop = "0.1"
and then import traits: use logchop::*