gpt4 book ai didi

rust - 如何将字符串连接到宏派生中的标识?

转载 作者:行者123 更新时间:2023-12-03 11:37:20 26 4
gpt4 key购买 nike

我需要创建一个宏派生,其中名称是函数名称的一部分。 (这段代码不起作用,只是为了说明问题)

fn impl_logic(ast: &syn::DeriveInput) -> TokenStream {
let name:&syn::Ident = &ast.ident;

let gen = quote! {
pub fn #name_logic() -> Arc<Mutex<UiAplicacion>> {
...
}
};

gen.into()
}

我该怎么做?

最佳答案

基于 quotedocs ,您可以使用 syn::Ident 构造一个新的标识符:

let fname = format!("{}_logic", name);
let varname = syn::Ident::new(&fname, ident.span());

然后对其进行插值:

let gen = quote! {
pub fn #varname() -> Arc<Mutex<UiAplicacion>> {
...
}

关于rust - 如何将字符串连接到宏派生中的标识?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62370461/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com