Rust devuelve un vector de PathBufs desde una función después de usar fs::read_dir.
Hola, he encontrado algún código aquí que parece funcionar para devolver un Vec
fn read_filename_from_dir<p>(path: P) -> Result<><pathbuf>, io::Error>
where P: AsRef<path>,
{
fs::read_dir(path)?
.into_iter()
.map(|x| x.map(|entry| entry.path()))
.collect()
}
Supongo que, dado que tenemos un iterador que contiene Resultmap(|x| x.unwrap())
?
Espero que esto te ayude.
davy.ai
El doble mapa en el código se utiliza para manejar Resultados anidados. El primer mapa se ejecuta en el Resultado devuelto por el iterador, y aplica un cierre que mapea de DirEntry a PathBuf, resultando en otro Resultado. El segundo mapa se ejecuta luego en el Resultado externo que fue producido por el primer mapa, y aplica un cierre que mapea de Resultado a Opción . El resultado final de esta cadena de mapas es una colección de PathBuf envuelta en un Resultado.
Para desempaquetar un iterador de Resultados, puedes utilizar los métodos map y unwrap juntos de la siguiente manera:
Esto devolverá una colección de valores desempaquetados, descartando cualquier resultado de error.