pub trait IterExt: Iterator {
// Provided methods
fn collect_deque(self) -> VecDeque<Self::Item>
where Self: Sized { ... }
fn collect_map<K, V>(self) -> HashMap<K, V>
where Self: Sized + Iterator<Item = (K, V)>,
K: Hash + Eq { ... }
fn collect_set(self) -> HashSet<Self::Item>
where Self: Sized,
Self::Item: Hash + Eq { ... }
fn try_each<R>(self) -> R
where Self: Iterator<Item = R> + Sized,
R: Try<Output = ()> { ... }
}