signal_processing 0.3.0

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

use num::One;

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

impl<T, S1, S2> Product<ProductSequence<T, S1>> for ProductSequence<T, S2>
where
    S1: MaybeList<T>,
    S2: MaybeList<T>,
    ProductSequence<T, S1>: Into<ProductSequence<T, S2>>,
    ProductSequence<T, S2>: One
{
    fn product<I: Iterator<Item = ProductSequence<T, S1>>>(iter: I) -> Self
    {
        iter.map(Into::into)
            .reduce(|a, b| a*b)
            .unwrap_or_else(One::one)
    }
}