FromIterator — create collection from iterator.
Derive usage:
1let numbers: Vec<i32> = (1..=5).collect();2let sum: i32 = (1..=5).sum();3let doubled: Vec<i32> = (1..=5).map(|x| x * 2).collect();
Custom implementation:
1struct Stats {2 sum: i32,3 count: usize,4}56impl FromIterator<i32> for Stats {7 fn from_iter<I: IntoIterator<Item = i32>>(iter: I) -> Self {8 let mut sum = 0;9 let mut count = 0;10 for val in iter {11 sum += val;12 count += 1;13 }14 Stats { sum, count }15 }16}1718let stats: Stats = (1..=10).collect();
Key: FromIterator for custom collection creation.