#retry #tor #arti #async #record

retry-error

可多次失败的操作的错误类型

18 个版本

0.5.3 2024 年 6 月 5 日
0.5.1 2023 年 9 月 5 日
0.4.2 2023 年 6 月 30 日
0.3.1 2023 年 2 月 1 日
0.0.0 2021 年 6 月 24 日

#1004Rust 模式

Download history 420/week @ 2024-05-01 500/week @ 2024-05-08 400/week @ 2024-05-15 934/week @ 2024-05-22 628/week @ 2024-05-29 534/week @ 2024-06-05 1131/week @ 2024-06-12 1424/week @ 2024-06-19 1515/week @ 2024-06-26 519/week @ 2024-07-03 295/week @ 2024-07-10 956/week @ 2024-07-17 919/week @ 2024-07-24 1427/week @ 2024-07-31 1196/week @ 2024-08-07 1209/week @ 2024-08-14

4,838 每月下载量
用于 51 个包 (4 直接)

MIT/Apache

17KB
300

retry-error

尝试表示多次失败的错误。

此包实现了 RetryError,一个类型,用于在尝试几次失败时使用,并且每次尝试都可能失败。而不是只返回一个错误,它记录了所有接收到的错误,以防它们不同。

此包作为 Arti 的一部分开发,Arti 是一个在 Rust 中实现 Tor 的项目。它被用于重试操作的更高层包。

示例

use retry_error::RetryError;

fn some_operation() -> anyhow::Result<bool> {
   unimplemented!(); // example
}

fn example() -> Result<(), RetryError<anyhow::Error>> {
   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(()),
           Err(e) => err.push(e),
       }
   }
   // All attempts failed; return all the errors.
   return Err(err);
}

许可证:MIT OR Apache-2.0

无运行时依赖