Trait count_to_non_zero::CountToNonZeroExt
source · pub trait CountToNonZeroExt: Iterator {
// Required method
fn count_to_non_zero(self) -> Option<NonZeroUsize>;
}
Expand description
An extension trait for iterators to count non-zero elements.
This trait provides an additional method to iterators, count_to_non_zero
,
which returns an Option<NonZeroUsize>
representing the number of elements
iterated over that are not zero. This method leverages Rust’s type system
to provide a guarantee at compile time that the count is non-zero when
Some value is returned.
Required Methods§
sourcefn count_to_non_zero(self) -> Option<NonZeroUsize>
fn count_to_non_zero(self) -> Option<NonZeroUsize>
Counts the number of non-zero elements the iterator iterates over.
§Returns
Some(NonZeroUsize)
if the iterator contains non-zero elements, with the count of those elements.None
if the iterator is empty or only contains zeros.
§Examples
use count_to_non_zero::CountToNonZeroExt;
let data = vec![0, 1, 2, 0, 3];
let count = data.into_iter().count_to_non_zero();
assert_eq!(count, Some(std::num::NonZeroUsize::new(5).unwrap()));