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 日 |
#1004 在 Rust 模式
4,838 每月下载量
用于 51 个包 (4 直接)
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