Avatar ·

Cómo interrumpir la iteración y devolver un error si Iterator::map devuelve Result::Err

¡Hola, colegas! Soy nuevo en Rust y me encontré con un problema al trabajar con iteradores y manejo de errores. Tengo un vector de strings que necesito parsear a números. Estoy usando `Iterator::map` con `str::parse::()`, que devuelve `Result`. Si el parseo falla, quiero detener inmediatamente la iteración y devolver el error desde la función, en lugar de continuar procesando los elementos restantes. Esto es lo que estoy probando: ```rust use std::num::ParseIntError; fn parse_numbers(input: &[&str]) -> Result, ParseIntError> { input.iter() .map(|s| s.parse::()) .collect() } ``` Este código funciona, pero recolecta todos los resultados en un `Result, ParseIntError>`. Si un string no se parsea, el error igual se devuelve, pero sospecho que `collect` procesa todos los elementos, incluso si uno de ellos es `Err`. Necesito que, ante el primer error, la iteración se interrumpa y el error se devuelva de inmediato, sin procesar el resto de los strings. ¿Cómo hacerlo correctamente?