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 过程宏

Download history 1355460/week @ 2024-05-03 1442402/week @ 2024-05-10 1509079/week @ 2024-05-17 1509357/week @ 2024-05-24 1642293/week @ 2024-05-31 1652427/week @ 2024-06-07 1567489/week @ 2024-06-14 1718261/week @ 2024-06-21 1644449/week @ 2024-06-28 1624326/week @ 2024-07-05 1632369/week @ 2024-07-12 1687899/week @ 2024-07-19 1694221/week @ 2024-07-26 1691171/week @ 2024-08-02 1833157/week @ 2024-08-09 1842206/week @ 2024-08-16

7,390,694 每月下载量
用于 6,643 个crates(直接使用2,210个)

MIT 许可证

23KB
163 代码行

Strum

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

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

调试

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

名称

Strum 的意思是 STRing enUM,因为它是一个通过字符串增强枚举的额外信息的库。

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

依赖

~0–285KB