| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- macro_rules! define_add_variants {
- (LHS = $lhs:ty, RHS = $rhs:ty, Output = $out:ty) => {
- impl<'b> Add<&'b $rhs> for $lhs {
- type Output = $out;
- fn add(self, rhs: &'b $rhs) -> $out {
- &self + rhs
- }
- }
- impl<'a> Add<$rhs> for &'a $lhs {
- type Output = $out;
- fn add(self, rhs: $rhs) -> $out {
- self + &rhs
- }
- }
- impl Add<$rhs> for $lhs {
- type Output = $out;
- fn add(self, rhs: $rhs) -> $out {
- &self + &rhs
- }
- }
- };
- }
- macro_rules! define_sub_variants {
- (LHS = $lhs:ty, RHS = $rhs:ty, Output = $out:ty) => {
- impl<'b> Sub<&'b $rhs> for $lhs {
- type Output = $out;
- fn sub(self, rhs: &'b $rhs) -> $out {
- &self - rhs
- }
- }
- impl<'a> Sub<$rhs> for &'a $lhs {
- type Output = $out;
- fn sub(self, rhs: $rhs) -> $out {
- self - &rhs
- }
- }
- impl Sub<$rhs> for $lhs {
- type Output = $out;
- fn sub(self, rhs: $rhs) -> $out {
- &self - &rhs
- }
- }
- };
- }
- macro_rules! define_mul_variants {
- (LHS = $lhs:ty, RHS = $rhs:ty, Output = $out:ty) => {
- impl<'b> Mul<&'b $rhs> for $lhs {
- type Output = $out;
- fn mul(self, rhs: &'b $rhs) -> $out {
- &self * rhs
- }
- }
- impl<'a> Mul<$rhs> for &'a $lhs {
- type Output = $out;
- fn mul(self, rhs: $rhs) -> $out {
- self * &rhs
- }
- }
- impl Mul<$rhs> for $lhs {
- type Output = $out;
- fn mul(self, rhs: $rhs) -> $out {
- &self * &rhs
- }
- }
- };
- }
|