#variant #enums #traits #case #iterator

no-std variter

用于遍历无字段枚举类型变体的声明性宏派生特质

6 个版本

0.3.0 2021 年 2 月 15 日
0.2.2 2021 年 2 月 11 日
0.1.1 2021 年 2 月 2 日
0.1.0 2021 年 1 月 28 日

#1144开发工具

Download history 25/week @ 2024-04-01 2/week @ 2024-04-15 10/week @ 2024-04-22 1/week @ 2024-05-13 8/week @ 2024-05-27 7/week @ 2024-06-03 1/week @ 2024-06-10

每月 73 次下载
poker 中使用

MIT/Apache 许可

13KB
109

VarIter

Crates.io Docs.rs unsafe forbidden

variter 是一个 Rust 包,它导出了一些用于遍历没有字段且可以有零个或多个变体的 enum 类型的简单工具。

use variter::{VarIter, derive_var_iter};
derive_var_iter! {
    #[derive(Debug)]
    enum Greeting {
        Hello,
        Hola,
        Bonjour,
    }
}

fn main() {
    for greeting in Greeting::ALL_VARIANTS {
        println!("{:?}", greeting);
    }
}

如果你熟悉 Swift 语言,它类似于使用编译器合成的 CaseIterable 协议符合。

有关更多信息,请参阅 模块文档

用法

在您的 Cargo.toml 文件中将 variter 添加为依赖项

[dependencies]
# ...
variter = "0.2"

特性

  • foreign_impls(默认):包括在稳定的 core 类型上实现 VarIter
  • std(默认):如果已启用 foreign_impls,则包括对稳定 std 类型的 VarIter 实现。

no_std 支持

考虑到该包的简单性,可以通过您的 Cargo.toml 依赖项表中的 default-features = false 标志切换 no_std 支持。

[dependencies]
# ...
variter = { version = "0.2", default-features = false }

许可

根据您的选择,许可协议为以下之一

贡献

除非您明确表示,否则根据 Apache-2.0 许可证定义的,您有意提交的任何贡献,都应按上述方式双许可,无需附加条款或条件。

无运行时依赖