## 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: ![image](https://hackmd.io/_uploads/S1pph6q10.png) [`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}]"}
    605 views