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 数据结构
每月509次下载
用于 5 个crate(2个直接使用)
13KB
258 代码行
enum-meta
此crate允许将元数据附加到C样式的枚举(或严格意义上的任何枚举)。元数据可以是任意类型,但所有变体必须具有相同的类型,尽管值可以不同。
这满足了枚举变体作为其他事物的标志时的情况——例如,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");
}
前者直接返回值,而后者返回引用。值仅在首次使用时计算一次。
许可证
根据您选择,许可协议为以下之一
- Apache许可证第2版,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。