dfir_rs/compiled/pull/
accumulate_all.rs1use std::collections::HashMap;
2use std::hash::{BuildHasher, Hash};
3
4use futures::stream::{Stream, StreamExt};
5
6use crate::util::accumulator::Accumulator;
7
8pub async fn accumulate_all<Key, ValAccum, ValIn>(
10 accum: &mut impl Accumulator<ValAccum, ValIn>,
11 hash_map: &mut HashMap<Key, ValAccum, impl BuildHasher>,
12 st: impl Stream<Item = (Key, ValIn)>,
13) where
14 Key: Eq + Hash,
15{
16 futures::pin_mut!(st);
17 while let Some((key, item)) = st.next().await {
18 accum.accumulate(hash_map.entry(key), item);
19 }
20}