From d88306fb6887acea96c8e26e8ae9fd34371487be Mon Sep 17 00:00:00 2001 From: "Tobin C. Harding" Date: Wed, 11 Dec 2024 16:37:44 +1100 Subject: [PATCH] units: Implement ops for amount types Use the shiny new ops macros to implement the full set of `Add`, `AddAssign`, `Sub`, and `SubAssign` impls we require. --- units/src/amount/signed.rs | 12 ++++-------- units/src/amount/unsigned.rs | 12 ++++-------- 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/units/src/amount/signed.rs b/units/src/amount/signed.rs index 0f548ccdc..ea58bf32d 100644 --- a/units/src/amount/signed.rs +++ b/units/src/amount/signed.rs @@ -388,10 +388,8 @@ impl ops::Add for SignedAmount { self.checked_add(rhs).expect("SignedAmount addition error") } } - -impl ops::AddAssign for SignedAmount { - fn add_assign(&mut self, rhs: SignedAmount) { *self = *self + rhs } -} +crate::internal_macros::impl_add_for_references!(SignedAmount); +crate::internal_macros::impl_add_assign!(SignedAmount); impl ops::Sub for SignedAmount { type Output = SignedAmount; @@ -400,10 +398,8 @@ impl ops::Sub for SignedAmount { self.checked_sub(rhs).expect("SignedAmount subtraction error") } } - -impl ops::SubAssign for SignedAmount { - fn sub_assign(&mut self, rhs: SignedAmount) { *self = *self - rhs } -} +crate::internal_macros::impl_sub_for_references!(SignedAmount); +crate::internal_macros::impl_sub_assign!(SignedAmount); impl ops::Rem for SignedAmount { type Output = SignedAmount; diff --git a/units/src/amount/unsigned.rs b/units/src/amount/unsigned.rs index 5d31bb055..87f1553c4 100644 --- a/units/src/amount/unsigned.rs +++ b/units/src/amount/unsigned.rs @@ -457,10 +457,8 @@ impl ops::Add for Amount { self.checked_add(rhs).expect("Amount addition error") } } - -impl ops::AddAssign for Amount { - fn add_assign(&mut self, rhs: Amount) { *self = *self + rhs } -} +crate::internal_macros::impl_add_for_references!(Amount); +crate::internal_macros::impl_add_assign!(Amount); impl ops::Sub for Amount { type Output = Amount; @@ -469,10 +467,8 @@ impl ops::Sub for Amount { self.checked_sub(rhs).expect("Amount subtraction error") } } - -impl ops::SubAssign for Amount { - fn sub_assign(&mut self, rhs: Amount) { *self = *self - rhs } -} +crate::internal_macros::impl_sub_for_references!(Amount); +crate::internal_macros::impl_sub_assign!(Amount); impl ops::Rem for Amount { type Output = Amount;