说我想编写一个带有标识符的宏,并定义一个以ident作为其名称一部分的函数:
macro_rules! defun {
( $name:ident ) => {
fn fun_$name() { // This doesn't work, need to find a way
// to convert "foo" into "fun_foo"
// ...
}
}
}
defun!(foo);
这可能吗?
P.S。我的实际用例更像是
macro_rules! tests {
( $( $name:ident ),* $(,)* ) => {
$(
#[test]
fn test_case_$name() {
// ...
}
)*
}
}
tests!{
fixture1,
fixture2,
}
进行一系列集成测试。