RPM build fix (reverted CI changes which will need to be un-reverted or made conditional) and vendor Rust dependencies to make builds much faster in any CI system.
This commit is contained in:
32
zeroidc/vendor/itertools/src/group_map.rs
vendored
Normal file
32
zeroidc/vendor/itertools/src/group_map.rs
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
#![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))
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user