#iterator #iteration #tool #sequence #sequential

combin-iterator

一些用于组合迭代器的实用工具

5 个不稳定版本

0.2.2 2024年2月6日
0.2.1 2024年2月6日
0.2.0 2024年2月6日
0.1.0 2024年1月24日
0.0.1 2024年1月24日

#617Rust 模式

MIT/Apache

24KB
268

combin-iterator

combin-iterator crate 提供了一组结合现有迭代器创建迭代器的组合子。它的目标是简化组合和链式迭代器的过程,以创建更复杂的迭代模式。

特性

组合宏:使用便捷的宏来组合多个迭代器,创建复杂的迭代序列。

轮询交替:使用 Altern 迭代器以轮询方式交替多个迭代器产生的元素。

注意:此 crate 目前处于开发阶段,且仅有少量功能可用。

用法

use combin_iterator::altern;
use combin_iterator::altern::AlternWith;

fn main() {
    let vec1 = vec![1, 4, 7, 9];
    let vec2 = vec![2, 5];
    let vec3 = vec![3, 6, 8];

    // Use the altern! macro for alternating iteration
    let altern_iter = altern!(vec1.iter(), vec2.iter(), vec3.iter());

    // Iterate over the elements
    for element in altern_iter {
        println!("{}", element);
    } // Print: 1 2 3 5 6 7 8 9

    // Or use the AlternWith trait (i.e. combin_iterator::altern::BiAltern)
    let trait_iter = vec1.iter().altern_with(vec2.iter());

    // Iterate over the elements
    for element in trait_iter {
        println!("{}", element);
    } // Print: 1 2 4 5 7 9
}

变更日志

安装

将以下依赖项添加到您的 Cargo.toml 中

[dependencies]
combin-iterator = "0.2.2"

许可

本项目采用 MIT 许可证或 Apache 2.0 许可证 - 请参阅 LICENSE 文件以获取详细信息。

贡献

欢迎贡献!如果您有任何想法、建议或错误报告,请打开问题或提交拉取请求。

注意

  • 有关稳定性、错误报告或功能请求的任何问题,请参阅 crate 的文档或联系 crate 维护者以获取支持。
  • 如果您认为您发现了一个错误,请随时联系 crate 维护者。此 crate 仍在开发中,虽然我们正在尽最大努力确保没有错误,但仍然有可能遗漏了一些东西。

祝您使用 combin-iterator 迭代愉快!

无运行时依赖项