sieveErr method
Converts an Iterable<Result<T, E>>
to a <Iterable<E>
.
All Ok
values are skipped.
Basic usage
final list = <Result<int, String>>[
Ok(4),
Ok(7),
Ok(2),
Err('first'),
Ok(9),
Err('second'),
];
final errorList = list.sieveErr();
expect(errorList, ['first', 'second']);
final list = <Result<int, String>>[Ok(1), Ok(2), Ok(3), Ok(4)];
final errorList = list.sieveErr();
expect(errorList, <String>[]);
final list = <Result<int, String>>[
Err('Bad'),
Err('Really bad'),
Err('Really really bad'),
];
final errorList = list.sieveErr();
expect(errorList, ['Bad', 'Really bad', 'Really really bad']);
Implementation
Iterable<E> sieveErr() {
return where((Result<T, E> result) => result.isErr)
.map((Result<T, E> result) => result.unwrapErr());
}