#枚举 #字符串 # #过程宏

sea-strum_macros

处理枚举和字符串的有用宏

3 个不稳定版本

0.23.0 2021年12月25日
0.21.2 2021年8月7日
0.21.1 2021年8月7日

#6 in #过程宏

Download history 11567/week @ 2024-03-14 6603/week @ 2024-03-21 23211/week @ 2024-03-28 6691/week @ 2024-04-04 8163/week @ 2024-04-11 8429/week @ 2024-04-18 8192/week @ 2024-04-25 7012/week @ 2024-05-02 5989/week @ 2024-05-09 14384/week @ 2024-05-16 13690/week @ 2024-05-23 7595/week @ 2024-05-30 14079/week @ 2024-06-06 10189/week @ 2024-06-13 10244/week @ 2024-06-20 11244/week @ 2024-06-27

47,351 个月下载量
用于 71 个crate(通过 sea-strum

MIT 许可证

87KB
1.5K SLoC

Strum

Build Status Build status Latest Version Rust Documentation Crates.io Crates.io

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。如果您正在向strumstrum_macros添加新功能,请确保运行测试并添加新的集成测试以确保功能按预期工作。

调试

要查看生成的代码,请在编译代码之前设置STRUM_DEBUG环境变量。STRUM_DEBUG=1将输出所有类型的生成代码。 STRUM_DEBUG=YourType将仅输出名为YourType的类型生成的代码。

名称

Strum代表STRing enUM,因为它是一个通过字符串添加额外信息的枚举库。

拨弦也是一种非常随意的动作,就像编写Rust代码一样。

依赖

~2MB
~43K SLoC