partition<T> static method

(List<T>, List<Failure>) partition<T>(
  1. List<Result<T>> results
)

Partitions a non-homogeneous list collection of results into separated, isolated collections.

Yields a clean Dart record containing a structured list mapping of all successes alongside gathered failures.

Implementation

static (List<T> successes, List<Failure> failures) partition<T>(
  List<Result<T>> results,
) {
  final successes = <T>[];
  final failures = <Failure>[];

  for (final result in results) {
    switch (result) {
      case _SuccessResult<T>(success: final success):
        successes.add(success.value);
      case _FailureResult<T>(failure: final failure):
        failures.add(failure);
    }
  }

  return (successes, failures);
}