Crate checked_sum

Source
Expand description

Utility crate for summing up iterators in a safe way. The CheckedSum trait is implemented for any iterator of items implementing CheckedAdd, which in turn is implemented for all integer primitives but can also be implemented for other types like newtypes wrapping integers.

use checked_sum::CheckedSum;

// If the sum fits into the type, it is returned
let numbers = vec![1u8, 2, 3, 4, 5];
assert_eq!(numbers.into_iter().checked_sum(), Some(15),);

// If the sum overflows, `None` is returned
let numbers = vec![255u8, 1];
assert_eq!(numbers.into_iter().checked_sum(), None,);

Traitsยง

CheckedAdd
Numeric type supporting overflow-checked addition.
CheckedSum
Iterator extension trait for summing numbers with overflow checking.