Skip to main content

api_scanner/scanner/common/
errors.rs

1use crate::error::CapturedError;
2
3pub fn collect_result<T>(
4    result: Result<T, CapturedError>,
5    errors: &mut Vec<CapturedError>,
6) -> Option<T> {
7    match result {
8        Ok(value) => Some(value),
9        Err(err) => {
10            errors.push(err);
11            None
12        }
13    }
14}
15
16pub fn collect_results<T>(
17    results: Vec<Result<T, CapturedError>>,
18    errors: &mut Vec<CapturedError>,
19) -> Vec<T> {
20    results
21        .into_iter()
22        .filter_map(|result| collect_result(result, errors))
23        .collect()
24}