combineResultList<T, E> function

Result<List<T>, E> combineResultList<T, E>(
  1. List<Result<T, E>> resultList
)

Implementation

Result<List<T>, E> combineResultList<T, E>(List<Result<T, E>> resultList) {
  if (resultList.isEmpty) {
    resultList = [ok([])] as List<Result<T, E>>;
  }
  return resultList.fold<Result<List<T>, E>>(
      ok<List<T>, E>([]),
      (acc, result) => acc.isOk()
          ? result.isErr()
              ? err(result.asErr.error)
              : acc.map((list) => list..add(result.asOk.value))
          : acc);
}