Avatar ·

Como converter Option em Result em Rust sem usar macros?

Olá a todos. Estou estudando Rust e me deparei com o problema de converter `Option` em `Result`. Frequentemente no meu código surge uma situação em que obtenho um `Option` de alguma função (por exemplo, de um iterador ou hash map), mas preciso retornar um `Result` para tratar a ausência de valor como um erro.\n\nAtualmente estou fazendo isso com match ou if let, mas parece verboso. Por exemplo:\n\n```rust\nfn find_user(id: u32) -> Result {\n let users = get_users();\n match users.iter().find(|u| u.id == id) {\n Some(user) => Ok(user.clone()),\n None => Err("User not found".to_string()),\n }\n}\n```\n\nEu sei que é possível escrever uma macro, mas estou curioso: existe uma forma nativa de fazer isso sem escrever minha própria macro? Na biblioteca padrão há algo?