Sha256: f7b02c964f63505d3e36280cfdc1755e05287714201efe983dacf702eee61434
Contents?: true
Size: 771 Bytes
Versions: 25
Compression:
Stored size: 771 Bytes
Contents
#![cfg(feature = "use_std")] use std::collections::HashMap; use std::hash::Hash; use std::iter::Iterator; /// Return a `HashMap` of keys mapped to a list of their corresponding values. /// /// See [`.into_group_map()`](crate::Itertools::into_group_map) /// for more information. pub fn into_group_map<I, K, V>(iter: I) -> HashMap<K, Vec<V>> where I: Iterator<Item=(K, V)>, K: Hash + Eq, { let mut lookup = HashMap::new(); iter.for_each(|(key, val)| { lookup.entry(key).or_insert_with(Vec::new).push(val); }); lookup } pub fn into_group_map_by<I, K, V>(iter: I, f: impl Fn(&V) -> K) -> HashMap<K, Vec<V>> where I: Iterator<Item=V>, K: Hash + Eq, { into_group_map( iter.map(|v| (f(&v), v)) ) }
Version data entries
25 entries across 25 versions & 1 rubygems