gla*_*gel 2 rust rust-proc-macros
我已经实现了以下 proc_macro ,它需要
builtin_method!(hello_world(a, b, c) {
println!("{} {} {}", a, b, c);
}
Run Code Online (Sandbox Code Playgroud)
并且应该生成
pub fn hello_world(args: Vec<String>) {
let a = args.get(0).unwrap();
let b = args.get(1).unwrap();
let c = args.get(2).unwrap();
println!("{} {} {}", a, b, c);
}
Run Code Online (Sandbox Code Playgroud)
这是我当前的代码。
builtin_method!(hello_world(a, b, c) {
println!("{} {} {}", a, b, c);
}
Run Code Online (Sandbox Code Playgroud)
在变量插值内部,我需要某种枚举变量进行计数。根据文档,没有这样的方法。
我怎样才能更好地实现这一点而不是向上计数_i
?
pub fn hello_world(args: Vec<String>) {
let a = args.get(0).unwrap();
let b = args.get(1).unwrap();
let c = args.get(2).unwrap();
println!("{} {} {}", a, b, c);
}
Run Code Online (Sandbox Code Playgroud)
let arguments = arguments.into_iter().enumerate().map(|(index, arg)| quote! {
let mut #arg = args.get(#index).unwrap().clone();
});
let gen = quote! {
pub fn #function(args: Vec<String>) {
let mut _i = 0;
#(#arguments)*
#body
}
};
Run Code Online (Sandbox Code Playgroud)