@@ -210,7 +210,7 @@ impl<T: Float> DerefMut for OrderedFloat<T> {
210
210
impl < T : Float > Eq for OrderedFloat < T > { }
211
211
212
212
macro_rules! impl_ordered_float_binop {
213
- ( $imp: ident, $method: ident) => {
213
+ ( $imp: ident, $method: ident, $assign_imp : ident , $assign_method : ident ) => {
214
214
impl <T : $imp> $imp for OrderedFloat <T > {
215
215
type Output = OrderedFloat <T :: Output >;
216
216
@@ -291,14 +291,42 @@ macro_rules! impl_ordered_float_binop {
291
291
OrderedFloat ( ( self . 0 ) . $method( & other. 0 ) )
292
292
}
293
293
}
294
+
295
+ impl <T : $assign_imp> $assign_imp<T > for OrderedFloat <T > {
296
+ #[ inline]
297
+ fn $assign_method( & mut self , other: T ) {
298
+ ( self . 0 ) . $assign_method( other) ;
299
+ }
300
+ }
301
+
302
+ impl <' a, T : $assign_imp<& ' a T >> $assign_imp<& ' a T > for OrderedFloat <T > {
303
+ #[ inline]
304
+ fn $assign_method( & mut self , other: & ' a T ) {
305
+ ( self . 0 ) . $assign_method( other) ;
306
+ }
307
+ }
308
+
309
+ impl <T : $assign_imp> $assign_imp for OrderedFloat <T > {
310
+ #[ inline]
311
+ fn $assign_method( & mut self , other: Self ) {
312
+ ( self . 0 ) . $assign_method( other. 0 ) ;
313
+ }
314
+ }
315
+
316
+ impl <' a, T : $assign_imp<& ' a T >> $assign_imp<& ' a Self > for OrderedFloat <T > {
317
+ #[ inline]
318
+ fn $assign_method( & mut self , other: & ' a Self ) {
319
+ ( self . 0 ) . $assign_method( & other. 0 ) ;
320
+ }
321
+ }
294
322
}
295
323
}
296
324
297
- impl_ordered_float_binop ! { Add , add}
298
- impl_ordered_float_binop ! { Sub , sub}
299
- impl_ordered_float_binop ! { Mul , mul}
300
- impl_ordered_float_binop ! { Div , div}
301
- impl_ordered_float_binop ! { Rem , rem}
325
+ impl_ordered_float_binop ! { Add , add, AddAssign , add_assign }
326
+ impl_ordered_float_binop ! { Sub , sub, SubAssign , sub_assign }
327
+ impl_ordered_float_binop ! { Mul , mul, MulAssign , mul_assign }
328
+ impl_ordered_float_binop ! { Div , div, DivAssign , div_assign }
329
+ impl_ordered_float_binop ! { Rem , rem, RemAssign , rem_assign }
302
330
303
331
impl < T : Bounded > Bounded for OrderedFloat < T > {
304
332
#[ inline]
0 commit comments