7个版本 (重大更改)

使用旧的Rust 2015

0.7.0 2024年6月6日
0.6.0 2018年10月21日
0.5.0 2018年10月20日
0.4.0 2018年10月20日
0.1.0 2018年10月16日

#317 in 数据结构

Download history 59/week @ 2024-04-26 52/week @ 2024-05-03 97/week @ 2024-05-10 70/week @ 2024-05-17 95/week @ 2024-05-24 300/week @ 2024-05-31 380/week @ 2024-06-07 265/week @ 2024-06-14 179/week @ 2024-06-21 184/week @ 2024-06-28 37/week @ 2024-07-05 72/week @ 2024-07-12 51/week @ 2024-07-19 155/week @ 2024-07-26 168/week @ 2024-08-02 120/week @ 2024-08-09

每月509次下载
用于 5 个crate(2个直接使用)

MIT/Apache

13KB
258 代码行

enum-meta

此crate允许将元数据附加到C样式的枚举(或严格意义上的任何枚举)。元数据可以是任意类型,但所有变体必须具有相同的类型,尽管值可以不同。

Travis-CI Status

这满足了枚举变体作为其他事物的标志时的情况——例如,HTTP错误代码,或在具体化时与某些明确的字符串渲染相关的语法树的一部分。

此crate提供两个宏,可以用于将此元数据添加到枚举中。这可以在枚举声明的不同位置完成。第一个宏用于在编译时确定的值

enum Colour {
   Red, Orange, Green
}

meta!{
   Colour, &'static str;
   Red, "Red";
   Orange, "Orange";
   Green, "Green";
}

assert_eq!(Red.meta(), "Red");

第二个宏用于在运行时计算值。

pub enum Colour{
    Red,
    Orange,
    Green
}

lazy_meta!{
    Colour, &String, META_Colour2
    Red, format!("{}:{}", 1, "Red");
    Orange, format!("{}:{}", 2, "Orange");
    Green, format!("{}:{}", 3, "Green");
}

前者直接返回值,而后者返回引用。值仅在首次使用时计算一次。

许可证

根据您选择,许可协议为以下之一

无运行时依赖项