2个不稳定版本
0.23.0 | 2021年12月25日 |
---|---|
0.21.0 | 2021年8月7日 |
#1843 in 过程宏
47,481 每月下载量
16KB
126 代码行
Strum
Strum 是一组宏和特质,用于在 Rust 中更轻松地处理枚举和字符串。
兼容性
Strum 目前支持 rustc >= 1.32.0 版本。欢迎提交改进与旧版本兼容性的 Pull Requests。项目的目标是发布后至少支持 2 年的 Rust 版本,并且更喜欢支持更长的时间,因为该项目变化缓慢。
将 Strum 包含到您的项目中
通过在 Cargo.toml 中添加以下行将 strum 和 strum_macros 导入到您的项目中。strum_macros 包含 Strum 中所有特质的宏。
[dependencies]
strum = "0.23"
strum_macros = "0.23"
# You can also use the "derive" feature, and import the macros directly from "strum"
# strum = { version = "0.23", features = ["derive"] }
Strum 宏
Strum 实现了以下宏
宏 | 描述 |
---|---|
EnumString | 根据名称将字符串转换为枚举变体。 |
Display | 将枚举变体转换为字符串。 |
FromRepr | 从整数转换为枚举。 |
AsRefStr | 为 MyEnum 实现 AsRef<str> |
IntoStaticStr | 在枚举上实现 From<MyEnum> for &'static str |
EnumVariantNames | 添加一个关联的 VARIANTS 常量,它是一个包含判别名称的数组。 |
EnumIter | 创建一个新的类型,该类型迭代枚举的变体。 |
EnumProperty | 为枚举变体添加自定义属性。 |
EnumMessage | 为枚举变体添加详细消息。 |
EnumDiscriminants | 生成一个只包含判别名称的新类型。 |
EnumCount | 添加一个等于变体数量的 usize 常量。 |
贡献
感谢您对贡献的兴趣。该项目分为3个部分,特性文件位于/strum
文件夹中。过程宏位于/strum_macros
文件夹中,集成测试位于/strum_tests
文件夹中。如果您正在为strum
或strum_macros
添加新功能,请确保运行测试并添加新的集成测试,以确保功能按预期工作。
调试
要在编译代码之前查看生成的代码,请设置STRUM_DEBUG环境变量。将STRUM_DEBUG=1
设置为将每个类型的所有生成的代码都输出。将STRUM_DEBUG=YourType
设置为仅输出名为YourType
的类型生成的代码。
名称
Strum是STRing enUM的简称,因为它是一个通过字符串增强枚举的额外信息的库。
拨弦也是一种非常随意的动作,就像编写Rust代码一样。
依赖项
~0–305KB