desugars operator overloading
assigns?
bendn 12 months ago
parent 47ddf5f · commit 6b7bb08
-rw-r--r--Cargo.toml2
-rw-r--r--src/lib.rs16
2 files changed, 17 insertions, 1 deletions
diff --git a/Cargo.toml b/Cargo.toml
index 833de4f..43df9fd 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "lower-macros"
-version = "0.2.6"
+version = "0.2.7"
authors = ["bend-n <[email protected]>"]
description = "desugar math where the compiler wont"
edition = "2021"
diff --git a/src/lib.rs b/src/lib.rs
index 68676bf..ba6dca3 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -73,6 +73,14 @@ impl Sub for Wrapping {
Shl(_) => quote!((#left).wrapping_shl(#right)),
Shr(_) => quote!((#left).wrapping_shr(#right)),
+ SubAssign(_) => quote!(#left = #left.wrapping_sub(#right)),
+ AddAssign(_) => quote!(#left = #left.wrapping_add(#right)),
+ MulAssign(_) => quote!(#left = #left.wrapping_mul(#right)),
+ DivAssign(_) => quote!(#left = #left.wrapping_div(#right)),
+ RemAssign(_) => quote!(#left = #left.wrapping_rem(#right)),
+ ShlAssign(_) => quote!(#left = #left.wrapping_shl(#right)),
+ ShrAssign(_) => quote!(#left = #left.wrapping_shr(#right)),
+
_ => quote!((#left) #op (#right)),
}
}
@@ -98,6 +106,14 @@ impl Sub for Saturating {
Shl(_) => quote!((#left).saturating_shl(#right)),
Shr(_) => quote!((#left).saturating_shr(#right)),
+ SubAssign(_) => quote!(#left = #left.saturating_sub(#right)),
+ AddAssign(_) => quote!(#left = #left.saturating_add(#right)),
+ MulAssign(_) => quote!(#left = #left.saturating_mul(#right)),
+ DivAssign(_) => quote!(#left = #left.saturating_div(#right)),
+ RemAssign(_) => quote!(#left = #left.saturating_rem(#right)),
+ ShlAssign(_) => quote!(#left = #left.saturating_shl(#right)),
+ ShrAssign(_) => quote!(#left = #left.saturating_shr(#right)),
+
_ => quote!((#left) #op (#right)),
}
}