sequence method

Result<Map<K, V>> sequence()

Turns a Map<K, Result<V>> into a Result<Map<K, V>>. If all values are Ok, it returns an Ok<Map<K, V>>. If any value is an Err, it returns the first Err encountered.

Implementation

Result<Map<K, V>> sequence() {
  final buffer = <K, V>{};
  for (final entry in entries) {
    switch (entry.value) {
      case Ok(value: final v):
        buffer[entry.key] = v;
      case Err err:
        return err.transfErr();
    }
  }
  return Ok(buffer);
}