fpdec 0.14.1

Decimal floating-point arithmetic.
Documentation
use core::iter::{Product, Sum};

use crate::Decimal;

impl Sum for Decimal {
    fn sum<I: Iterator<Item = Self>>(iter: I) -> Self {
        iter.fold(Self::ZERO, |sum, next| sum + next)
    }
}

impl Product for Decimal {
    fn product<I: Iterator<Item = Self>>(iter: I) -> Self {
        iter.fold(Self::ONE, |sum, next| sum * next)
    }
}

#[cfg(test)]
mod tests {
    use fpdec_macros::Dec;

    use super::*;

    #[test]
    fn sum_iter() {
        let sum = [Dec!(1), Dec!(2), Dec!(3), Dec!(4)]
            .into_iter()
            .sum::<Decimal>();

        assert_eq!(sum, Dec!(10));
    }

    #[test]
    fn product_iter() {
        let product = [Dec!(1), Dec!(2), Dec!(3), Dec!(4)]
            .into_iter()
            .product::<Decimal>();

        assert_eq!(product, Dec!(24));
    }
}