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ยง
- Checked
Add - Numeric type supporting overflow-checked addition.
- Checked
Sum - Iterator extension trait for summing numbers with overflow checking.