@@ -210,7 +210,7 @@ impl<T: Float> DerefMut for OrderedFloat<T> {
210210impl < T : Float > Eq for OrderedFloat < T > { }
211211
212212macro_rules! impl_ordered_float_binop {
213- ( $imp: ident, $method: ident) => {
213+ ( $imp: ident, $method: ident, $assign_imp : ident , $assign_method : ident ) => {
214214 impl <T : $imp> $imp for OrderedFloat <T > {
215215 type Output = OrderedFloat <T :: Output >;
216216
@@ -291,14 +291,42 @@ macro_rules! impl_ordered_float_binop {
291291 OrderedFloat ( ( self . 0 ) . $method( & other. 0 ) )
292292 }
293293 }
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+ }
294322 }
295323}
296324
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 }
302330
303331impl < T : Bounded > Bounded for OrderedFloat < T > {
304332 #[ inline]
0 commit comments