Rust's current macro's aren't as powerful as I would like them, and procedural macros are far more difficult and extremely hard to properly develop and debug.
The substitution macros aren't that much fun either since they lack certain capabilities (like introducing a new variable into the current scope without having to specify the name redundantly).
Without a lot of external libraries, procedural macros are almost impossible to write in my experience.
Neither of them allows one to properly code onto the type system or replace it and neither is properly supported by the IDEs (or RLS).
The substitution macros aren't that much fun either since they lack certain capabilities (like introducing a new variable into the current scope without having to specify the name redundantly).
Without a lot of external libraries, procedural macros are almost impossible to write in my experience.
Neither of them allows one to properly code onto the type system or replace it and neither is properly supported by the IDEs (or RLS).