7
Moja pierwsza myśl to map
z Option
, ale nie mogę użyć try!
od wewnątrz zamknięcia. Oświadczenie match
wygląda niepotrzebnie, ale nie mogę wymyślić, jak go uprościć.Czy jest możliwe przekonwertowanie opcji <Result<T, E>> na wynik <Option<T>, E> bez użycia dopasowania?
fn example<T, E>(val: Option<Result<T, E>>) -> Result<Option<T>, E> {
Ok(match val {
Some(v) => Some(v?),
None => None
})
}
I na odwrót może być wykonane przez 'val.map (| v | v.map (OK)) unwrap_or_else (| e | Niektórzy (Err (. e))) ' – Arnavion