基本上我有一个看起来像这样的宏:
macro_rules! my_macro {
( $expr:expr; $( $pat:pat ),* ) => {
match $expr {
$(
$pat => $(some-macro-magic-here),
)*
}
}
}
有什么可以进入$(some-macro-magic-here)
的,所以
my_macro!(foo; A, B, C)
将扩大到
match foo {
A => 2,
B => 4,
C => 6,
}
?
有没有其他方法可以获得类似的功能,有效地让我“枚举”宏的输入序列?
我想我可能可以编写一个递归宏来获得类似的效果,但我想知道是否有比我想的更优雅/惯用的方式