## Rust 声明宏 2.0 特性尝鲜
- [The Little Book of Rust Macros](https://veykril.github.io/tlborm)
- [Rust 宏小册](https://zjp-cn.github.io/tlborm) (小宏书)
---
### [Rust 中的宏](https://doc.rust-lang.org/book/ch19-06-macros.html)
- [声明宏](https://doc.rust-lang.org/book/ch19-06-macros.html#declarative-macros-with-macro_rules-for-general-metaprogramming) (Declarative)
- [过程宏](https://doc.rust-lang.org/book/ch19-06-macros.html#procedural-macros-for-generating-code-from-attributes) (Procedual)
- [Function-like](https://doc.rust-lang.org/book/ch19-06-macros.html#function-like-macros)
- [Attribute](https://doc.rust-lang.org/book/ch19-06-macros.html#attribute-like-macros)
- [Derive](https://doc.rust-lang.org/book/ch19-06-macros.html#how-to-write-a-custom-derive-macro)
---
### [声明宏 2.0](https://zjp-cn.github.io/tlborm/decl-macros/macros2.html) (Unstable)
RFC: [rfcs#1584](https://github.com/rust-lang/rfcs/blob/master/text/1584-macros.md)
Tracking Issue: [rust#39412](https://github.com/rust-lang/rust/issues/39412)
Feature: `#![feature(decl_macro)]`
Example:

[`std::ptr::addr_of`](https://doc.rust-lang.org/std/ptr/macro.addr_of.html)
---
与 `macro_rules` 的区别
- 语法
- macro 是规范的条目
- [卫生性](https://zjp-cn.github.io/tlborm/proc-macros/hygiene.html)
- macro_rules! 部分卫生(mixed hygene)
- macro 定义处卫生 (definition site)
- 例子
- https://zjp-cn.github.io/tlborm/decl-macros/macros2.html
- https://dtolnay.github.io/rust-quiz/24
---
- [inline-proc](https://crates.io/crates/inline-proc)
- [flatfish](https://crates.io/crates/flatfish)
- [iffy](https://crates.io/crates/iffy)
- [jrust](https://crates.io/crates/jrust)
- [inline-python](https://crates.io/crates/inline-python)
- [gpt-macro](https://crates.io/crates/gpt-macro)
{"title":"Rust Macros 2.0 Preview","slideOptions":"{\"theme\":\"dark\",\"spotlight\":{\"enabled\":false},\"width\":1600,\"height\":900}","description":"The Little Book of Rust Macros","contributors":"[{\"id\":\"94262fbf-81ae-4ed7-933c-561a41bd977a\",\"add\":2331,\"del\":471}]"}