#enums #macro-derive #derive #macro

推导

使用宏推导C样式的枚举特质 1.1

1 个不稳定版本

使用旧的Rust 2015

0.1.0 2017年2月3日

#112 in #enum

MIT 协议

5KB
101

derivation

使用宏推导C样式的枚举特质 1.1。

这个crate使得两个特质可推导,针对C样式的枚举,即 VariantsFromStr。第一个可以将枚举推导为变体列表,第二个使得从 &str 解析枚举变得非常简单。

支持Rust 1.15及以上版本。

使用方法

  1. 在您的 Cargo.toml 文件中将这两个crate作为依赖项添加

    [dependencies]
    
    derivation = "^0.1"
    enum_variants = "^1.0"
    
  2. 现在在您的crate源代码顶部导入这个crate

    #[macro_use]
    extern crate derivation;
    
  3. Variants 特质只有一个方法:fn variants() -> Vec<Self>;,它应该返回所有变体的列表。在需要推导时导入它

    extern crate enum_variants;
    
    use enum_variants::Variants;
    
  4. 像使用其他特质一样推导 FromStrVariants

    #[derive(FromStr, Variants)]
    enum Enum {
        /* ... */
    }
    

注意,仅支持C样式的(单一)枚举!

依赖项

~1.5MB
~41K SLoC