【发布时间】:2020-03-14 04:39:13
【问题描述】:
我的类型是Foo:
pub struct Foo { ... }
现在我想创建一个过程宏来创建这个结构的一个实例。这可能涉及繁重的计算、文件访问或其他只有过程宏才能做的事情,但如何创建该实例的确切细节在这里并不重要。
我这样定义我的程序宏:
#[proc_macro]
pub fn create_foo(_: TokenStream) -> TokenStream {
let foo_value: Foo = /* some complex computation */;
// TODO: return `foo_value`
}
我的过程宏的用户应该可以这样写:
fn main() {
let a: Foo = create_foo!();
}
请注意,Foo 可能包含大量数据,例如数兆字节的Vec 数据。
如何从我的程序宏返回 Foo 值?
【问题讨论】:
标签: rust rust-macros rust-proc-macros