35个版本 (22个重大变更)
0.26.3 | 2024年6月23日 |
---|---|
0.26.2 | 2024年3月10日 |
0.26.1 | 2024年1月28日 |
0.25.0 | 2023年6月18日 |
0.5.1 | 2017年2月25日 |
#2 in 过程宏
7,390,694 每月下载量
用于 6,643 个crates(直接使用2,210个)
23KB
163 代码行
Strum
Strum是一组宏和特质,用于在Rust中更容易地处理枚举和字符串。
兼容性
Strum目前与rustc >= 1.56.1的版本兼容。欢迎提交提高与旧版本兼容性的Pull Requests。项目的目标是发布后至少支持2年的Rust版本,甚至更长时间是首选,因为该项目变化缓慢。
将Strum包含到您的项目中
通过在您的Cargo.toml中添加以下行将strum和strum_macros导入到您的项目中。Strum_macros包含Strum中所有特质的宏。
[dependencies]
strum = "0.26"
strum_macros = "0.26"
# You can also use the "derive" feature, and import the macros directly from "strum"
# strum = { version = "0.26", features = ["derive"] }
Strum宏
Strum实现了以下宏
宏 | 描述 |
---|---|
EnumString | 根据名称将字符串转换为枚举变体。 |
Display | 将枚举变体转换为字符串 |
FromRepr | 从整数转换为枚举。 |
AsRefStr | 为MyEnum 实现AsRef<str> |
IntoStaticStr | 在枚举上实现From<MyEnum> for &'static str |
EnumIter | 创建一个新的类型,该类型迭代枚举的变体。 |
EnumProperty | 向枚举变体添加自定义属性。 |
EnumMessage | 向枚举变体添加详细消息。 |
EnumDiscriminants | 生成只包含判别符名称的新类型。 |
EnumCount | 添加一个等于变体数量的常量usize |
VariantArray | 添加一个关联的 VARIANTS 常量,它是一个包含所有枚举区分符的数组 |
VariantNames | 添加一个关联的 VARIANTS 常量,它是一个包含区分名称的数组 |
EnumTable | 实验性,为枚举的每个变体创建一个新的类型来存储指定类型的项目。 |
贡献
感谢您对贡献的兴趣。始终欢迎修复错误。如果您有兴趣实现或添加宏,请先打开一个问题来讨论功能。我审查新功能的时间有限。
项目分为3部分,特性在 /strum
文件夹中。过程宏在 /strum_macros
文件夹中,集成测试在 /strum_tests
中。如果您要向 strum
或 strum_macros
添加更多功能,请确保运行测试并添加新的集成测试,以确保功能按预期工作。
调试
要查看生成的代码,在编译代码之前设置 STRUM_DEBUG 环境变量。 STRUM_DEBUG=1
将为每个类型输出所有生成的代码。 STRUM_DEBUG=YourType
将仅输出名为 YourType
的类型的生成的代码。
名称
Strum 的意思是 STRing enUM,因为它是一个通过字符串增强枚举的额外信息的库。
Strumming 也是一种非常随意的动作,就像编写 Rust 代码一样。
依赖
~0–285KB