competitive/tools/
assign_ops.rs

1#[macro_export]
2macro_rules! add_assign {
3    ($l:expr, $r:expr) => {{
4        let r = $r;
5        $l += r;
6    }};
7}
8
9#[macro_export]
10macro_rules! sub_assign {
11    ($l:expr, $r:expr) => {{
12        let r = $r;
13        $l -= r;
14    }};
15}
16
17#[macro_export]
18macro_rules! mul_assign {
19    ($l:expr, $r:expr) => {{
20        let r = $r;
21        $l *= r;
22    }};
23}
24
25#[macro_export]
26macro_rules! div_assign {
27    ($l:expr, $r:expr) => {{
28        let r = $r;
29        $l /= r;
30    }};
31}
32
33#[macro_export]
34macro_rules! rem_assign {
35    ($l:expr, $r:expr) => {{
36        let r = $r;
37        $l %= r;
38    }};
39}
40
41#[macro_export]
42macro_rules! bitand_assign {
43    ($l:expr, $r:expr) => {{
44        let r = $r;
45        $l &= r;
46    }};
47}
48
49#[macro_export]
50macro_rules! bitor_assign {
51    ($l:expr, $r:expr) => {{
52        let r = $r;
53        $l |= r;
54    }};
55}
56
57#[macro_export]
58macro_rules! bitxor_assign {
59    ($l:expr, $r:expr) => {{
60        let r = $r;
61        $l ^= r;
62    }};
63}
64
65#[macro_export]
66macro_rules! shl_assign {
67    ($l:expr, $r:expr) => {{
68        let r = $r;
69        $l <<= r;
70    }};
71}
72
73#[macro_export]
74macro_rules! shr_assign {
75    ($l:expr, $r:expr) => {{
76        let r = $r;
77        $l >>= r;
78    }};
79}