1 个不稳定版本
使用旧的Rust 2015
0.1.0 | 2017年2月3日 |
---|
#112 in #enum
5KB
101 行
derivation
使用宏推导C样式的枚举特质 1.1。
这个crate使得两个特质可推导,针对C样式的枚举,即 Variants
和 FromStr
。第一个可以将枚举推导为变体列表,第二个使得从 &str
解析枚举变得非常简单。
支持Rust 1.15及以上版本。
使用方法
-
在您的
Cargo.toml
文件中将这两个crate作为依赖项添加[dependencies] derivation = "^0.1" enum_variants = "^1.0"
-
现在在您的crate源代码顶部导入这个crate
#[macro_use] extern crate derivation;
-
Variants
特质只有一个方法:fn variants() -> Vec<Self>;
,它应该返回所有变体的列表。在需要推导时导入它extern crate enum_variants; use enum_variants::Variants;
-
像使用其他特质一样推导
FromStr
或Variants
#[derive(FromStr, Variants)] enum Enum { /* ... */ }
注意,仅支持C样式的(单一)枚举!
依赖项
~1.5MB
~41K SLoC