1 unstable release
0.1.0 | Oct 25, 2024 |
---|
#1329 in Rust patterns
6KB
59 lines
checked_sum
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,);
lib.rs
:
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,);