sieveErr method

Iterable<E> sieveErr()

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());
}