Rust metaprogramming - macro_rules! beyond basics
summary
Shows concrete macro techniques: explains hygiene rules that prevent local-name collisions but let items leak, demonstrates debugging with log_syntax, trace_macros, -Z macro-stats and cargo expand while noting cargo expand misrepresents hygiene, gives actionable tips — better error messages via typed const checks, runtime-like validation via const panics, using module-level macro_use and the paste crate to concatenate idents, and demos a working derive macro that generates getters/setters and compiles with cargo expand output.
AI-written summary · about
chapters (8)
- 0:00Introduction
- 1:05Declarative macros recap
- 6:05Macro hygiene
- 9:40Debugging macros
- 16:42Writing better macros
- 26:12Future macro features
- 30:03Enterprise bean macro demo
- 39:00Q&A
related talks
29mMacromancy: an introduction to Rust macros
24mMacros for a More Productive Rust
45mDeveloping Macros in Rust
18mImpractical Macros
40mLet's Build a Hygienic Macro Expander
31mFunctional programming guerilla in the land of Rust
21mProving macro expansion with expandable
27mParsing Rust code considered harmful
