FromIterator te permite crear una colección a partir de un Iterador.
fn main() {
let primes = vec![2, 3, 5, 7];
let prime_squares = primes
.into_iter()
.map(|prime| prime * prime)
.collect::<Vec<_>>();
println!("prime_squares: {prime_squares:?}");
}
Iterator implementa fn collect<B>(self) -> B where B: FromIterator<Self::Item>, Self: Sized
También hay implementaciones que te permiten hacer cosas interesantes como convertir un Iterador<Item = Result<V, E>> en un Result<Vec<V>, E>.