下面是我想要的一个合成示例:
macro_rules! define_enum {
($Name:ident { $($Variant:ident),* }) => {
pub enum $Name {
None,
$($Variant),*,
}
}
}
define_enum!(Foo { A, B });
此代码可以编译,但如果在其中添加逗号:
define_enum!(Foo { A, B, });
// ^
编译失败了.我可以用以下方法解决它:
($Name:ident { $($Variant:ident,)* })
// ^
但define_enum!(Foo { A, B });
次失败,
我应该如何编写宏来处理这两种情况:
define_enum!(Foo { A, B });
define_enum!(Foo { A, B, });