Sha256: 6fd484d8fb82d541359486526b81a18ef4b4dc64abf51825b6fa437210719c9d
Contents?: true
Size: 743 Bytes
Versions: 13
Compression:
Stored size: 743 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
13 entries across 13 versions & 1 rubygems