7 stable releases
3.1.1 | Sep 21, 2021 |
---|---|
3.0.0 | Sep 6, 2021 |
2.0.0 | Jul 19, 2021 |
1.1.0 | May 12, 2021 |
1.0.0 | Mar 23, 2020 |
#437 in Debugging
1,970 downloads per month
Used in 4 crates
(3 directly)
19KB
283 lines
skip_error
skip_error
provides a single macro to help ignoring Error
that would happen
in a loop. See documentation to know more.
Rust version requirement
skip_error
3.0.0 requires Rustc version 1.54 or greater.
lib.rs
:
This crate provides a single macro to help skipping a error in a loop, possibly logging it.
For example, imagine you have some code like this.
for string_number in &["1", "2", "three", "4"] {
let number: u32 = match string_number.parse() {
Ok(n) => n,
Err(e) => continue,
};
}
Then you can use the macro skip_error!
to write like this.
for string_number in &["1", "2", "three", "4"] {
let number: u32 = skip_error!(string_number.parse());
}
Or even better, use the trait SkipError
that extends Iterator
and do
the following (essentially equivalent to [Iterator::flatten()
] but see
below for logging abilities).
use skip_error::SkipError;
let numbers: Vec<u32> = ["1", "2", "three", "4"]
.into_iter()
.map(|string_number| string_number.parse())
.skip_error()
.collect();
Features
log
: emit log message with the standardstd::log
macro. Disabled by default.tracing
: emit traces with thetracing::trace
macro. Disabled by default. If bothlog
andtracing
are enabled, thenlog
will be ignored sincetracing
is configured in a compatibility mode with standardlog
.
Dependencies
~105KB