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