#警告 #错误 #携带

w_result

携带警告的结果类型

3 个版本

使用旧的 Rust 2015

0.1.2 2016年4月12日
0.1.1 2016年2月5日
0.1.0 2016年2月4日

#警告 中排名 86

每月下载量 38
5 个crate(直接使用3个)中使用

GPL-3.0 许可证

14KB
281 行(不包括注释)

w_result

此 Rust crate 定义了 WResult,一种携带警告的结果类型。

文档

有时,即使遇到错误,操作也可能继续进行。在这些情况下,如果调用者需要采取行动,通知调用者这些错误是有用的。为此,函数可以返回一个 WResult

enum WResult<T, W, E> {
    WOk(T, Vec<W>),
    WErr(e),
}

WResultResult 类似,除了 ok 变体携带一个与其值一起的警告向量。与仅使用 Result<Vec<W>>, E> 的优势在于

  • 清晰度。
  • 一些 WResult 方法将自动从多个 WResult 中累积警告(例如,查看 andFromIterator<WResult<..>> 实现)。

转换为 Result

通常,你想要的唯一一件事情就是将 WResult 转换为 ResultWResult 提供了几个方法来完成此操作,它们在处理警告的方式上有所不同

  • WResult::result_log(self) -> Result<T, E> 通过使用 log crate 记录警告来将 WResult 转换为 Result
  • WResult::result_discard(self) -> Result<T, E> 通过丢弃警告来将 WResult 转换为 Result
  • WResult::result_werr(self) -> Result<T, E> 将警告视为错误并转换为 Result。如果有警告,则将第一个警告作为错误返回。此方法仅在警告和错误类型相同时存在。
  • WResult::result_werr_res(self) -> Result<T, Result<W, E>>result_werr 类似,但允许警告和错误类型为两种不同的类型。

依赖关系

~160KB