haar_lib/algebra/act/
add_min_count.rs1pub use crate::algebra::{act::Act, min_count::MinCount, sum::Sum, traits::*};
3
4#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
6pub struct AddMinCount<S: Monoid + Additive>(pub S);
7
8impl<T, U, A> Act<MinCount<T, U>> for AddMinCount<A>
9where
10 A: Monoid<Element = T> + Additive,
11 MinCount<T, U>: Monoid<Element = (Option<T>, U)>,
12{
13 type Monoid = A;
14 type Element = A::Element;
15
16 fn monoid(&self) -> &Self::Monoid {
17 &self.0
18 }
19 fn act(&self, _m: &MinCount<T, U>, val: (Option<T>, U), a: T, _len: usize) -> (Option<T>, U) {
20 (val.0.map(|x| self.0.op(x, a)), val.1)
21 }
22}