signal_processing 0.3.0

A signal processing library.
Documentation
use core::iter::Sum;

use num::Zero;

use crate::quantities::{MaybeList, SumSequence};

impl<T, S1, S2> Sum<SumSequence<T, S1>> for SumSequence<T, S2>
where
    S1: MaybeList<T>,
    S2: MaybeList<T>,
    SumSequence<T, S1>: Into<SumSequence<T, S2>>,
    SumSequence<T, S2>: Zero
{
    fn sum<I: Iterator<Item = SumSequence<T, S1>>>(iter: I) -> Self
    {
        iter.map(Into::into)
            .reduce(|a, b| a + b)
            .unwrap_or_else(Zero::zero)
    }
}