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?