desugars operator overloading
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 24 |
1 files changed, 23 insertions, 1 deletions
@@ -4,4 +4,26 @@ lowers expressions to their "desugared" form. e.g -`a * b + c` => `(a.mul(b)).add(c)`
\ No newline at end of file +`a * b + c` => `(a.mul(b)).add(c)` + +note that it is *extremely pervasive*, so +```rust +lower::math! { fn main() -> u8 { + const X: u8 = 31 * 2; + return 2 * X + 2; +} } +``` +expands to +```rust +fn main() -> u8 { + const X: u8 = 31.mul(2); + return (2.mul(X)).add(2); +} +``` +it should work for most expressions. + +## why + +well, you see, i made a [crate for arrays](https://crates.io/crates/atools). +then, i added `add`/`mul`/…, and got annoyed when i had to call them manually. +now, you can do amazing things such as `lower::math! { 2 * ([5, 2] + 5) }`.
\ No newline at end of file |