1 个不稳定版本
0.3.0 | 2024 年 3 月 16 日 |
---|
1402 在 Rust 模式 中
每月 55 次下载
6KB
CountToNonZero
概述
CountToNonZeroExt 软件包为 Rust 的标准 Iterator
特性提供扩展特性,允许以返回 Option<NonZeroUsize>
的方式在迭代器中计数非零元素。这种方法与 Rust 的类型系统完美集成,提供编译时保证,确保当结果存在时,确实是非零值。这种功能在区分零和非零计数的情况下特别有用,并且可以通过利用 NonZeroUsize 类型的优化内存布局和条件逻辑的能力来提高代码效率。
功能
通过 count_to_non_zero
方法扩展 Iterator
特性。该 count_to_non_zero
方法计算迭代器产生的值,返回 Option<NonZeroUsize>
。
使用
use std::num::NonZeroUsize;
use count_to_non_zero::CountToNonZeroExt;
fn main() {
let data = vec![1, 2, 0, 4];
let count = data.into_iter().filter(|el| el % 2 == 0).count_to_non_zero();
match count {
Some(non_zero_count) => println!("Non-zero count of elements: {}", non_zero_count),
None => println!("Iterator is empty"),
}
}