问题描述
我想将&str
解析为具体的syn类型。
此代码有效:
#[proc_macro_attribute]
pub fn command(attr: TokenStream,item: TokenStream) -> TokenStream {
let raw = "fn test(){}";
let tokens = raw.parse::<TokenStream>().unwrap();
let res = syn::parse_macro_input!(tokens as syn::ItemFn);
println!("{:?}",res);
/// rest
}
当item
为#[command(n=1)]
时,此方法也有效:
#[proc_macro_attribute]
pub fn command(attr: TokenStream,item: TokenStream) -> TokenStream {
let res = syn::parse_macro_input!(attr as syn::AttributeArgs);
println!("{:?}",res);
/// rest
}
此操作失败:
#[proc_macro_attribute]
pub fn command(attr: TokenStream,item: TokenStream) -> TokenStream {
let raw = "#[command(n=1)]";
let tokens = raw.parse::<TokenStream>().unwrap();
let res = syn::parse_macro_input!(tokens as syn::AttributeArgs);
println!("{:?}",res);
/// rest
}
是否可以将&str
解析为属性?我想让属性command
接收其所有子属性并进行解析。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)