3 ms·
Practical Procedural Macros in Rust
- TotempaaltJ 3y agoThis is super useful! I'm trying to write my first real, quite involved proc_macro library (https://github.com/martijnarts/smooth_grahpql https://github.com/martijnarts/smooth_grahpql), and getting an overview of what all is and isn't possible and where to start has been a pain. It might be worth highlighting https://crates.io/crates/darling https://crates.io/crates/darling, also, I've found it very useful. I'd especially been missing the testing bit! Thanks!
- xy2_ 3y agoThanks, glad you found it useful :)
- emschwartz 3y agoI would very much second the suggestion to do David Tolnay’s Proc Macro Workshop if you want to start understanding how to write them. I’d been writing Rust for years but always kind of avoided proc macros. When I had a need for them, I went through only the first section of the workshop and everything clicked. You can just do the derive macro section and all the strange and scary-looking macro syntax will make sense. I realized that there is only a bit of extra syntax but it’s used very often so it can seem a little overwhelming when reading macro code. https://github.com/dtolnay/proc-macro-workshop https://github.com/dtolnay/proc-macro-workshop
- moojd 3y agoThat repo is great. It really helped me get from zero to ... where ever I am now (non-zero I guess, I'm still early in my rust journey.) I do wish there was a 'completed' branch I could look at for reference though. Closest I found was this: https://docs.rs/modular-bitfield/latest/modular_bitfield/ https://docs.rs/modular-bitfield/latest/modular_bitfield/
- KolmogorovComp 3y agoNice blog, another very useful crate to use when working with proc-macro is https://github.com/dtolnay/prettyplease https://github.com/dtolnay/prettyplease, for formatting generated code (very useful for debugging!), that does not bails out like rustfmt sometimes does.