sequence method
Turns a Map<K, Option<V>>
into an Option<Map<K, V>>
.
If all values are Some, it returns a Some<Map<K, V>>
. If any value
is a None, it returns None.
Implementation
Option<Map<K, V>> sequence() {
final buffer = <K, V>{};
for (final entry in entries) {
switch (entry.value) {
case Some(value: final v):
buffer[entry.key] = v;
case None():
return const None();
}
}
return Some(buffer);
}