4 ms·
Advantages with a price. The macros in the original code most all seem to be constants and very few functions, so I'm not sure what the power of Rust's macros
by akira2501 7y ago
Advantages with a price.
The macros in the original code most all seem to be constants and very few functions, so I'm not sure what the power of Rust's macros buys here. I don't see a lot of difference between
LT(3, KC_TAB)
and
[TAB <{3}]
Both are "magical". Likewise, I can also understand the layout precisely by looking at the C code. To understand the Rust code, I have to assume what layer! and r! are doing, or I have to inspect them to make that determination.
I'm _sure_ Rust has advantages in certain situations, I'm not sure this is a great example to display that.
- unlinked_dll 7y agoThe macro system is stupidly powerful but I agree this isn't a decent example. C preprocessor macros are very cumbersome not only to read and write, but to use. I alluded to this is another comment but Rust macros can call arbitrary Rust code. Including file i/o at compile time, such as loading a config file in your syntax of choice, deserializing it to a struct, and then using it to synthesize tokens. Rust's macros become an extremely powerful tool for code generation using Rust itself.