pub fn sum<A, T, F>(mapper: F) -> SumCollector<A, T, F>Expand description
Creates a zero-erasure collector that sums values extracted from entities.
ยงExample
use solverforge_scoring::stream::collector::{sum, UniCollector, Accumulator};
struct Item { value: i64 }
let collector = sum(|item: &Item| item.value);
let mut acc = collector.create_accumulator();
acc.accumulate(&collector.extract(&Item { value: 5 }));
acc.accumulate(&collector.extract(&Item { value: 3 }));
acc.accumulate(&collector.extract(&Item { value: 7 }));
assert_eq!(acc.finish(), 15);
acc.retract(&collector.extract(&Item { value: 3 }));
assert_eq!(acc.finish(), 12);