SyMind / learning

路漫漫其修远兮,吾将上下而求索。
9 stars 1 forks source link

Rust 过程宏 #72

Open SyMind opened 1 year ago

SyMind commented 1 year ago

原文:https://rustwiki.org/zh-CN/reference/procedural-macros.html

过程宏允许在执行函数时创建句法扩展。过程宏有三种形式:

可以将过程宏想象成是从一个 AST 到另一个 AST 的函数映射。

过程宏必须在 crate 类型为 proc-macro 的 crate 中定义。

注意:使用 Cargo 时,定义过程宏的 crate 的配置文件里要使用 proc-macro 做如下设置:

[lib]
proc-macro = true

过程宏在编译时运行,因此具有与编译器相同的环境资源。

过程宏有两种报告错误的方法。首先是 panic;第二个是发布 compile_error 性质的宏调用。

proc_macro crate