【发布时间】:2016-08-20 11:16:35
【问题描述】:
我想要这样的东西:
define_enum_and_all_variants! ( Test {
One, Two, Three
});
生产:
enum Test {
One, Two, Three
}
const ALL_VARIANTS: [Test; 3] = [One, Two, Three];
这里的问题是3,我可以这样写:
macro_rules! define_enum_and_all_variants {
($Name:ident { $($Variant:ident),* }) =>
{
#[derive(Debug)]
enum $Name {
$($Variant),*,
}
#[allow(dead_code)]
const ALL_VARIANTS: [$Name; 3] = [$($Name::$Variant),*];
}
}
但是如何计算enum中的元素个数?
【问题讨论】: