sequenceList method

Option<List<T>> sequenceList()

Turns an Iterable<Option<T>> into an Option<List<T>>. If all elements are Some, it returns a Some<List<T>>. If any element is a None, it returns None.

Implementation

Option<List<T>> sequenceList() {
  final buffer = <T>[];
  for (final e in this) {
    switch (e) {
      case Some(value: final v):
        buffer.add(v);
      case None():
        return const None();
    }
  }
  return Some(buffer);
}