desugars operator overloading
Diffstat (limited to 'README.md')
-rw-r--r--README.md24
1 files changed, 23 insertions, 1 deletions
diff --git a/README.md b/README.md
index 92deb2d..a14b668 100644
--- a/README.md
+++ b/README.md
@@ -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