我有一个宏,它抽象了枚举的一个变体:
struct Test(u64);
enum MyEnum {
Variant1(Test)
}
macro_rules! MyEnumVariant {
["1"] => MyEnum::Variant1
}
我想在匹配分支中使用:
fn main() {
let t = MyEnum::Variant1(Test(3));
match t {
MyEnumVariant!["1"](test) => println!("Value of test is: {}", test.0)
}
}
这会导致编译错误。我没有找到任何语法允许我使用宏来替换匹配中的变量访问。
这是一个playground link到这个小例子与编译错误。
您有允许在这里使用宏的语法吗?
1条答案
按热度按时间3htmauhk1#
使宏包含要生成的整个模式。这将编译: