Crates.io | checked_sum |
lib.rs | checked_sum |
version | 0.1.0 |
source | src |
created_at | 2024-10-25 09:21:45.458163 |
updated_at | 2024-10-25 09:21:45.458163 |
description | A library safely summing up iterators. |
homepage | |
repository | https://github.com/elsirion/checked_sum |
max_upload_size | |
id | 1422266 |
size | 6,501 |
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,);