arti/retry-error
S0AndS0 432fd9443e WIP: Add the "unwrap_used" lint.
> Check `unwrap_used` section of Clippy documentation for details;
>
>   https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used

This adds the following Clippy configuration to crates;

    #![deny(clippy::unwrap_used)]

**Warning** while tests and compiler do not show any errors, the submitted
changes are very much a Work In Progress and mistakes may have been made. Check

    https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/67

Merge Request thread for more details.
2021-08-24 15:31:31 -07:00
..
src WIP: Add the "unwrap_used" lint. 2021-08-24 15:31:31 -07:00
Cargo.toml Missing fields in tor-units/Cargo.toml. 2021-06-24 07:20:40 -04:00
README.md Update retry-error README 2021-06-17 18:41:47 -04:00

README.md

retry-error

An error attempt to represent multiple failures.

This crate implements [RetryError], a type to use when you retry something a few times, and all those attempts. Instead of returning only a single error, it records all of the errors received, in case they are different.

This crate is developed as part of Arti, a project to implement Tor in Rust. It's used by higher-level crates that retry operations.

Example

use retry_error::RetryError;

const N_ATTEMPTS: usize = 10;
let mut err = RetryError::in_attempt_to("perform an example operation");
for _ in 0..N_ATTEMPTS {
    match some_operation() {
        Ok(val) => return Ok(val),
        Err(e) => err.push(e),
    }
}
// All attempts failed; return all the errors.
return Err(err)

License: MIT OR Apache-2.0