hexga_map_on/
map_on_common.rs1#[macro_export]
3macro_rules! map_on_integer_unsigned {
4 ($($macro_arms:tt)*) => {
5 $crate::map_on!((u8, u16, u32, u64, usize), $($macro_arms)*);
6 };
7}
8
9#[macro_export]
11macro_rules! map_on_integer_signed {
12 ($($macro_arms:tt)*) => {
13 $crate::map_on!((i8, i16, i32, i64, isize), $($macro_arms)*);
14 };
15}
16
17#[macro_export]
19macro_rules! map_on_integer
20{
21 ($($macro_arms:tt)*) => {
22 $crate::map_on_integer_unsigned!($($macro_arms)*);
23 $crate::map_on_integer_signed!($($macro_arms)*);
24 };
25}
26
27#[macro_export]
29macro_rules! map_on_float
30{
31 ($($macro_arms:tt)*) => {
32 $crate::map_on!((f32, f64), $($macro_arms)*);
33 };
34}
35
36#[macro_export]
38macro_rules! map_on_number
39{
40 ($($macro_arms:tt)*) => {
41 $crate::map_on_integer!($($macro_arms)*);
42 $crate::map_on_float!($($macro_arms)*);
43 };
44}
45
46#[macro_export]
48macro_rules! map_on_number_and_bool
49{
50 ($($macro_arms:tt)*) => {
51 $crate::map_on_number!($($macro_arms)*);
52 $crate::map_on!((bool), $($macro_arms)*);
53 };
54}
55
56#[macro_export]
58macro_rules! map_on_number_and_bool_and_char
59{
60 ($($macro_arms:tt)*) => {
61 $crate::map_on_number!($($macro_arms)*);
62 $crate::map_on!((bool, char), $($macro_arms)*);
63 };
64}
65
66#[macro_export]
68macro_rules! map_on_operator_binary_arithmetic_unit {
69 ($($macro_arms:tt)*) => {
70 $crate::map_on!
71 (
72 (
73 (Add, add),
74 (Sub, sub)
75 ),
76 $($macro_arms)*
77 );
78 };
79}
80
81#[macro_export]
83macro_rules! map_on_operator_binary_arithmetic {
84 ($($macro_arms:tt)*) => {
85 $crate::map_on_operator_binary_arithmetic_unit!($($macro_arms)*);
86 $crate::map_on!
87 (
88 (
89 (Mul, mul),
90 (Div, div),
91 (Rem, rem)
92 ),
93 $($macro_arms)*
94 );
95 };
96}
97
98#[macro_export]
100macro_rules! map_on_operator_binary_bit {
101 ($($macro_arms:tt)*) => {
102 $crate::map_on!
103 (
104 (
105 (BitOr, bitor),
106 (BitAnd, bitand),
107 (Shl, shl),
108 (Shr, shr)
109 ),
110 $($macro_arms)*
111 );
112 };
113}
114
115#[macro_export]
117macro_rules! map_on_operator_binary
118{
119 ($($macro_arms:tt)*) => {
120 $crate::map_on_operator_binary_arithmetic!($($macro_arms)*);
121 $crate::map_on_operator_binary_bit!($($macro_arms)*);
122 };
123}
124
125#[macro_export]
127macro_rules! map_on_operator_assign_arithmetic_unit {
128 ($($macro_arms:tt)*) => {
129 $crate::map_on!
130 (
131 (
132 (AddAssign, add_assign),
133 (SubAssign, sub_assign)
134 ),
135 $($macro_arms)*
136 );
137 };
138}
139
140#[macro_export]
142macro_rules! map_on_operator_assign_arithmetic {
143 ($($macro_arms:tt)*) => {
144 $crate::map_on_operator_assign_arithmetic_unit!($($macro_arms)*);
145 $crate::map_on!
146 (
147 (
148 (MulAssign, mul_assign),
149 (DivAssign, div_assign),
150 (RemAssign, rem_assign)
151 ),
152 $($macro_arms)*
153 );
154 };
155}
156
157#[macro_export]
159macro_rules! map_on_operator_assign_bit {
160 ($($macro_arms:tt)*) => {
161 $crate::map_on!
162 (
163 (
164 (BitOrAssign, bitor_assign),
165 (BitAndAssign, bitand_assign),
166 (ShlAssign, shl_assign),
167 (ShrAssign, shr_assign)
168 ),
169 $($macro_arms)*
170 );
171 };
172}
173
174#[macro_export]
176macro_rules! map_on_operator_assign
177{
178 ($($macro_arms:tt)*) => {
179 $crate::map_on_operator_assign_arithmetic!($($macro_arms)*);
180 $crate::map_on_operator_assign_bit!($($macro_arms)*);
181 };
182}
183
184#[macro_export]
195macro_rules! map_on_std_fmt_without_debug {
196 ($($macro_arms:tt)*) => {
197 $crate::map_on!(
198 (
199 Display,
200 Octal,
201 LowerHex,
202 UpperHex,
203 Pointer,
204 Binary,
205 LowerExp,
206 UpperExp
207 ),
208 $($macro_arms)*
209 );
210 };
211}
212
213#[macro_export]
225macro_rules! map_on_std_fmt {
226 ($($macro_arms:tt)*) => {
227 $crate::map_on_std_fmt_without_debug!($($macro_arms)*);
228 $crate::map_on!((Debug), $($macro_arms)*
229 );
230 };
231}
232
233#[macro_export]
235macro_rules! map_on_operator_unary_bit
236{
237 ($($macro_arms:tt)*) => {
238 $crate::map_on!
239 (
240 (
241 (Not, not)
242 ),
243 $($macro_arms)*
244 );
245 };
246}
247
248#[macro_export]
250macro_rules! map_on_operator_unary_arithmetic_unit
251{
252 ($($macro_arms:tt)*) => {
253 $crate::map_on!
254 (
255 (
256 (Neg, neg),
257 (Abs, abs)
258 ),
259 $($macro_arms)*
260 );
261 };
262}
263
264#[macro_export]
266macro_rules! map_on_operator_unary
267{
268 ($($macro_arms:tt)*) => {
269 $crate::map_on_operator_unary_bit!($($macro_arms)*);
270 $crate::map_on_operator_unary_arithmetic_unit!($($macro_arms)*);
271 };
272}