An example-driven, step-by-step guide to success with Rust macros.
In Write Powerful Rust Macros you’ll learn how to use these amazing metaprogramming tools to push Rust to its full potential. This hands-on guide takes you from the absolute basics to advanced macro techniques, exploring Rust macros through interesting and engaging examples.
Inside Write Powerful Rust Macros you’ll discover:
- Writing declarative macros.
- Procedural macros.
- Reading and debugging macro code.
- Improving the type system with newtypes and zero-sized types.
- How common Rust libraries use macros.
Write Powerful Rust Macros teaches you how to write, test, debug, and publish macros for Rust. It’s perfect for Rust practitioners who want to master this powerful development technique. Build your knowledge chapter-by-chapter. You’ll start with declarative macros before diving into the real power: procedural macros that can generate code, augment data structures, and even create domain-specific languages.
About the technology
Macros are one of Rust’s most important and powerful tools. Although notoriously challenging, this metaprogramming technique has a big payoff. Using macros to generate new Rust code at compile-time can save you hours of tedious coding with negligible runtime performance impact. This book shows you exactly how to master this Rust superpower.
About the book
Write Powerful Rust Macros opens up the world of macros to intermediate Rust programmers. You’ll start with declarative macros to get the basics under your belt. Then, you’ll advance to procedural macros as you automatically generate a builder, learn to create your own domain-specific languages, and more. As you go, you’ll develop practical skills like testing macros, integrating macros with crates, and even sharing your macros with other developers.
What's inside
- How Rust libraries use macros.
- Reading and debugging macro code.
- New types and the type state pattern.
About the reader
For intermediate Rust programmers.
Table of contents
1. Going meta
2. Declarative macros
3. A “Hello, World” procedural macro
4. Making fields public with attribute macros
5. Hiding information and creating mini-DSLs with function-like macros
6. Testing a builder macro
7. From panic to result: Error handling
8. Builder with attributes
9. Writing an infrastructure DSL
10. Macros and the outside world