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

无std sea-strum

枚举和字符串操作的有用宏

2个不稳定版本

0.23.0 2021年12月25日
0.21.0 2021年8月7日

#1843 in 过程宏

Download history 11594/week @ 2024-03-14 6612/week @ 2024-03-21 23183/week @ 2024-03-28 6704/week @ 2024-04-04 8189/week @ 2024-04-11 8432/week @ 2024-04-18 8201/week @ 2024-04-25 7046/week @ 2024-05-02 6021/week @ 2024-05-09 14422/week @ 2024-05-16 13709/week @ 2024-05-23 7644/week @ 2024-05-30 14116/week @ 2024-06-06 10218/week @ 2024-06-13 10278/week @ 2024-06-20 11264/week @ 2024-06-27

47,481 每月下载量

MIT 许可证

16KB
126 代码行

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代码一样。

依赖项

~0–305KB