transpose method

Option<Result<T, E>> transpose()

Transposes this Result<Option<T>, E> into an Option<Result<T, E>>.

Returns:

Result<Option<int>, String> a = Ok(Some(1));
Option<Result<int, String>> b = Some(Ok(1));

print(a.transpose() == b); // prints: true

See also: Rust: Result::transpose()

Implementation

Option<Result<T, E>> transpose() => switch (this) {
	Ok(value: Some(value: T value)) => Some(Ok(value)),
	Ok(value: None()) => None(),
	Err(value: E value) => Some(Err(value))
};