transpose method
Transposes the result of an option.
Some(Ok(1)) => Ok(Some(1));
Some(Err('message')) => Err('message');
None() => Ok(None());
See also https://doc.rust-lang.org/std/option/enum.Option.html#method.transpose
Implementation
Result<Option<T>, E> transpose() {
return match(
(result) => result.match(
(value) => Ok(Some(value)),
Err.new,
),
() => Ok(None<T>()),
);
}