Open SyMind opened 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 性质的宏调用。
compile_error
过程宏允许在执行函数时创建句法扩展。过程宏有三种形式:
可以将过程宏想象成是从一个 AST 到另一个 AST 的函数映射。
过程宏必须在 crate 类型为 proc-macro 的 crate 中定义。
过程宏在编译时运行,因此具有与编译器相同的环境资源。
过程宏有两种报告错误的方法。首先是 panic;第二个是发布
compile_error
性质的宏调用。proc_macro crate