pub trait IterUtils: Iterator {
// Provided methods
fn collect_map<K, V>(self) -> HashMap<K, V>
where HashMap<K, V>: FromIterator<Self::Item>,
K: Hash + Eq,
Self: Sized { ... }
fn collect_set<K>(self) -> HashSet<K>
where HashSet<K>: FromIterator<Self::Item>,
K: Hash + Eq,
Self: Sized { ... }
}