flattened property

  1. @useResult
Result<T, E> flattened

Flattens a Result containing another Result.

The flattening operation is only ever a single level deep.

Examples

// prints "Ok(2)"
print(const Ok<Result<int, String>, String>(Ok(2)).flattened);

// prints "Err(error)"
print(const Ok<Result<int, String>, String>(Err('error')).flattened);

Implementation

@useResult
Result<T, E> get flattened {
  return switch (this) {
    Ok(:final value) => value,
    Err(:final error) => Err(error),
  };
}