#error #mistakes #produce #multiple #function

mistake

适用于产生多个错误的函数的错误处理包

2 个版本

0.1.1 2020 年 5 月 21 日
0.1.0 2020 年 5 月 20 日

#2358 in Rust 模式

自定义许可

14KB

mistake

适用于产生多个错误的函数的错误处理包

示例

use mistake::Mistake::{self, Fine};

fn count_valid_strings(strings: Vec<String>) -> Mistake<i32, std::num::ParseIntError> {
    let mut errors = Vec::new();
    let mut count = 0;
    for s in strings {
        let value: Option<i32> = Mistake::from(s.parse::<i32>()).to_option(&mut errors);
        if value.is_some() {
            count += 1;
        }
    }
    Fine(count, errors)
}

用例

在某些情况下,不希望一出现错误就终止执行(例如,编译器通常一次会产生多个错误)。在这种情况下,这个包可以用来在返回前聚合多个错误,从而能够向用户提供更有意义的错误信息。

无运行时依赖