2 use std
::ops
::{AddAssign, SubAssign, MulAssign, DivAssign, RemAssign}
;
3 use std
::ops
::{BitAndAssign, BitOrAssign, BitXorAssign, ShlAssign, ShrAssign}
;
7 macro_rules
! trivial_binop
{
8 ($Trait
:ident
, $m
:ident
) => {
9 impl $Trait
<i32> for A { fn $m(&mut self, rhs: i32) { self.0 = rhs; }
}
13 trivial_binop
!(AddAssign
, add_assign
);
14 trivial_binop
!(SubAssign
, sub_assign
);
15 trivial_binop
!(MulAssign
, mul_assign
);
16 trivial_binop
!(DivAssign
, div_assign
);
17 trivial_binop
!(RemAssign
, rem_assign
);
18 trivial_binop
!(BitAndAssign
, bitand_assign
);
19 trivial_binop
!(BitOrAssign
, bitor_assign
);
20 trivial_binop
!(BitXorAssign
, bitxor_assign
);
21 trivial_binop
!(ShlAssign
, shl_assign
);
22 trivial_binop
!(ShrAssign
, shr_assign
);