4 ms·
Rust has an extremely powerful macro system, have you tried that?
by TheSoftwareGuy 4y ago
Rust has an extremely powerful macro system, have you tried that?
- alpaca128 4y agoRust macros are one of the more annoying features to me. They're great at first glance but whenever I want to build more fancy ones I constantly bump into limitations. For example they seem to be parsed without any lookahead, making it difficult to push beyond the typical function call syntax without getting compiler errors due to ambiguity.
- inferiorhuman 4y agoProcedural macros have a peek function from the syn crate. macro_rules macros can stuff this into the pattern matching. e.g. https://turreta.com/2019/12/24/pattern-matching-declarative-macros/ https://turreta.com/2019/12/24/pattern-matching-declarative-...
- colejohnson66 4y agoBut proc macros are limited by requiring another crate (unless things have changed in the last year). Sure, it’s just one extra crate in the project, but why must I be forced to?
- inferiorhuman 4y agoAsked and answered in an adjacent comment.
- xigoi 4y agoBut there's the weird limitation that procedural macros have to be in a separate crate.
- efaref 4y agoWhy is that weird? Procedural macros are compiler plugins. They get compiled for the platform you're building on, not the one you're building for, and so they need to be a separate compilation unit. In Rust, the crate is the compilation unit.
- xigoi 4y agoBecause you can't just throw together a simple procedural macro to use in a specific project, as you can in other languages.