Avatar ·

Cómo convertir Option en Result en Rust sin usar macros

Hola a todos. Estoy aprendiendo Rust y me encontré con el problema de convertir `Option` en `Result`. A menudo en mi código surge una situación donde obtengo un `Option` de alguna función (por ejemplo, de un iterador o un hash map), pero necesito devolver un `Result` para tratar la ausencia del valor como un error. Por ahora lo hago con match o if let, pero se ve voluminoso. Por ejemplo: ```rust fn find_user(id: u32) -> Result { let users = get_users(); match users.iter().find(|u| u.id == id) { Some(user) => Ok(user.clone()), None => Err("User not found".to_string()), } } ``` Sé que se puede escribir una macro, pero me pregunto: ¿hay una forma incorporada de hacerlo sin escribir mi propia macro? ¿Hay algo como `option_to_result()` en la biblioteca estándar? ¿O tal vez algún método como `.unwrap_or_else()` que devuelva un `Result`? Me gustaría ver ejemplos de cómo se hace esto en Rust idiomático. ¡Gracias!