过程宏中分为三类。

  • Function-like macros - custom!(…) 类函数宏。
  • Derive macros - #[derive(CustomDerive)] 派生宏
  • Attribute macros - #[CustomAttribute] 属性宏

过程宏定义在一个特殊的库中,库的属性声明如下。

  1. [lib]
  2. proc-macro = true

错误

直接panic或者compile_error宏。

依赖

所以实现过程宏的库都依赖于proc-macro。

实现

[proc_macro] 实现类函数宏。
#[proc_macro_derive(AnswerFn)] 实现派生宏。