collectOrElse method
Converts an Iterable<Result<T, E>>
to a <Iterable<T>
.
All Err
values are replaced by the result of the provided function.
Basic usage
final list = <Result<int, String>>[
Ok(4),
Ok(7),
Ok(2),
Err('first'),
Ok(9),
Err('second'),
];
final valueList = list.collectOrElse((error) => error.length);
expect(valueList, [4, 7, 2, 5, 9, 6]);
final list = <Result<int, String>>[Ok(1), Ok(2), Ok(3), Ok(4)];
final valueList = list.collectOrElse((error) => error.length);
expect(valueList, [1, 2, 3, 4]);
Implementation
Iterable<T> collectOrElse(T Function(E error) errMap) {
return map((Result<T, E> result) {
return result.unwrapOrElse(errMap);
});
}