#non-zero #iterator #count #traits #elements #extend #approach

count-to-non-zero

扩展 Rust 的 Iterator 特性,包含一个 count_to_non_zero 方法,返回 Option 以实现更直观和类型安全的元素计数方式。该软件包提供了一种方便且符合 Rust 习惯的方法来从迭代器中获取非零元素计数,通过利用 Rust 的类型系统来提高代码的可读性和安全性。非常适合需要区分空和非空迭代器,同时无需手动计数检查的应用程序。

1 个不稳定版本

0.3.0 2024 年 3 月 16 日

1402Rust 模式

Download history 9/week @ 2024-04-08 12/week @ 2024-04-15 19/week @ 2024-05-06 7/week @ 2024-05-13 30/week @ 2024-05-20 7/week @ 2024-05-27 23/week @ 2024-06-03 9/week @ 2024-06-10 21/week @ 2024-06-24 7/week @ 2024-07-08 15/week @ 2024-07-15 32/week @ 2024-07-22

每月 55 次下载

MIT/Apache

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"),
    }
}

无运行时依赖