combineOption<T extends Object> function

Option<List<T>> combineOption<T extends Object>(
  1. Iterable<Option<T>> options
)

Combines an iterable of Options into one containing a list of their values.

If any Option is a None, the result is a None.

Implementation

Option<List<T>> combineOption<T extends Object>(Iterable<Option<T>> options) {
  final values = <T>[];
  for (final option in options) {
    switch (option) {
      case Some(value: final value):
        values.add(value);
      case None():
        return const None();
    }
  }
  return Some(values);
}