flattened property

  1. @useResult
Option<T> flattened

An Option containing another Option flattened into a single Option.

The flattening operation is only ever a single level deep.

Examples

// prints "Some(2)"
print(const Some(Some(2)).flattened);

// prints "None"
print(const Some(None<int>()).flattened);

Implementation

@useResult
Option<T> get flattened {
  return switch (this) {
    Some(:final value) => value,
    None() => None<T>(),
  };
}