1#[doc(hidden)]
10#[macro_export]
11macro_rules! apply_to_unsigneds {
12 ($m: tt) => {
13 $m!(u8);
14 $m!(u16);
15 $m!(u32);
16 $m!(u64);
17 $m!(u128);
18 $m!(usize);
19 };
20}
21
22#[doc(hidden)]
23#[macro_export]
24macro_rules! apply_to_signeds {
25 ($m: tt) => {
26 $m!(i8);
27 $m!(i16);
28 $m!(i32);
29 $m!(i64);
30 $m!(i128);
31 $m!(isize);
32 };
33}
34
35#[doc(hidden)]
36#[macro_export]
37macro_rules! apply_to_primitive_ints {
38 ($m: tt) => {
39 apply_to_unsigneds!($m);
40 apply_to_signeds!($m);
41 };
42}
43
44#[doc(hidden)]
45#[macro_export]
46macro_rules! apply_to_unsigned_signed_pairs {
47 ($m: tt) => {
48 $m!(u8, i8);
49 $m!(u16, i16);
50 $m!(u32, i32);
51 $m!(u64, i64);
52 $m!(u128, i128);
53 $m!(usize, isize);
54 };
55}
56
57#[doc(hidden)]
58#[macro_export]
59macro_rules! apply_fn_to_unsigneds {
60 ($f: ident) => {
61 $f::<u8>();
62 $f::<u16>();
63 $f::<u32>();
64 $f::<u64>();
65 $f::<u128>();
66 $f::<usize>();
67 };
68}
69
70#[doc(hidden)]
71#[macro_export]
72macro_rules! apply_fn_to_signeds {
73 ($f: ident) => {
74 $f::<i8>();
75 $f::<i16>();
76 $f::<i32>();
77 $f::<i64>();
78 $f::<i128>();
79 $f::<isize>();
80 };
81}
82
83#[doc(hidden)]
84#[macro_export]
85macro_rules! apply_fn_to_primitive_ints {
86 ($f: ident) => {
87 apply_fn_to_unsigneds!($f);
88 apply_fn_to_signeds!($f);
89 };
90}
91
92#[doc(hidden)]
93#[macro_export]
94macro_rules! apply_fn_to_unsigned_signed_pairs {
95 ($f: ident) => {
96 $f::<u8, i8>();
97 $f::<u16, i16>();
98 $f::<u32, i32>();
99 $f::<u64, i64>();
100 $f::<u128, i128>();
101 $f::<usize, isize>();
102 };
103}
104
105#[doc(hidden)]
106#[macro_export]
107macro_rules! apply_fn_to_unsigneds_and_unsigneds {
108 ($f: ident) => {
109 $f::<u8, u8>();
110 $f::<u8, u16>();
111 $f::<u8, u32>();
112 $f::<u8, u64>();
113 $f::<u8, u128>();
114 $f::<u8, usize>();
115 $f::<u16, u8>();
116 $f::<u16, u16>();
117 $f::<u16, u32>();
118 $f::<u16, u64>();
119 $f::<u16, u128>();
120 $f::<u16, usize>();
121 $f::<u32, u8>();
122 $f::<u32, u16>();
123 $f::<u32, u32>();
124 $f::<u32, u64>();
125 $f::<u32, u128>();
126 $f::<u32, usize>();
127 $f::<u64, u8>();
128 $f::<u64, u16>();
129 $f::<u64, u32>();
130 $f::<u64, u64>();
131 $f::<u64, u128>();
132 $f::<u64, usize>();
133 $f::<u128, u8>();
134 $f::<u128, u16>();
135 $f::<u128, u32>();
136 $f::<u128, u64>();
137 $f::<u128, u128>();
138 $f::<u128, usize>();
139 $f::<usize, u8>();
140 $f::<usize, u16>();
141 $f::<usize, u32>();
142 $f::<usize, u64>();
143 $f::<usize, u128>();
144 $f::<usize, usize>();
145 };
146}
147
148#[doc(hidden)]
149#[macro_export]
150macro_rules! apply_fn_to_unsigneds_and_signeds {
151 ($f: ident) => {
152 $f::<u8, i8>();
153 $f::<u8, i16>();
154 $f::<u8, i32>();
155 $f::<u8, i64>();
156 $f::<u8, i128>();
157 $f::<u8, isize>();
158 $f::<u16, i8>();
159 $f::<u16, i16>();
160 $f::<u16, i32>();
161 $f::<u16, i64>();
162 $f::<u16, i128>();
163 $f::<u16, isize>();
164 $f::<u32, i8>();
165 $f::<u32, i16>();
166 $f::<u32, i32>();
167 $f::<u32, i64>();
168 $f::<u32, i128>();
169 $f::<u32, isize>();
170 $f::<u64, i8>();
171 $f::<u64, i16>();
172 $f::<u64, i32>();
173 $f::<u64, i64>();
174 $f::<u64, i128>();
175 $f::<u64, isize>();
176 $f::<u128, i8>();
177 $f::<u128, i16>();
178 $f::<u128, i32>();
179 $f::<u128, i64>();
180 $f::<u128, i128>();
181 $f::<u128, isize>();
182 $f::<usize, i8>();
183 $f::<usize, i16>();
184 $f::<usize, i32>();
185 $f::<usize, i64>();
186 $f::<usize, i128>();
187 $f::<usize, isize>();
188 };
189}
190
191#[doc(hidden)]
192#[macro_export]
193macro_rules! apply_fn_to_unsigneds_and_primitive_ints {
194 ($f: ident) => {
195 apply_fn_to_unsigneds_and_unsigneds!($f);
196 apply_fn_to_unsigneds_and_signeds!($f);
197 };
198}
199
200#[doc(hidden)]
201#[macro_export]
202macro_rules! apply_fn_to_unsigneds_and_unsigned_signed_pairs {
203 ($f: ident) => {
204 $f::<u8, u8, i8>();
205 $f::<u8, u16, i16>();
206 $f::<u8, u32, i32>();
207 $f::<u8, u64, i64>();
208 $f::<u8, u128, i128>();
209 $f::<u8, usize, isize>();
210 $f::<u16, u8, i8>();
211 $f::<u16, u16, i16>();
212 $f::<u16, u32, i32>();
213 $f::<u16, u64, i64>();
214 $f::<u16, u128, i128>();
215 $f::<u16, usize, isize>();
216 $f::<u32, u8, i8>();
217 $f::<u32, u16, i16>();
218 $f::<u32, u32, i32>();
219 $f::<u32, u64, i64>();
220 $f::<u32, u128, i128>();
221 $f::<u32, usize, isize>();
222 $f::<u64, u8, i8>();
223 $f::<u64, u16, i16>();
224 $f::<u64, u32, i32>();
225 $f::<u64, u64, i64>();
226 $f::<u64, u128, i128>();
227 $f::<u64, usize, isize>();
228 $f::<u128, u8, i8>();
229 $f::<u128, u16, i16>();
230 $f::<u128, u32, i32>();
231 $f::<u128, u64, i64>();
232 $f::<u128, u128, i128>();
233 $f::<u128, usize, isize>();
234 $f::<usize, u8, i8>();
235 $f::<usize, u16, i16>();
236 $f::<usize, u32, i32>();
237 $f::<usize, u64, i64>();
238 $f::<usize, u128, i128>();
239 $f::<usize, usize, isize>();
240 };
241}
242
243#[doc(hidden)]
244#[macro_export]
245macro_rules! apply_fn_to_unsigneds_and_primitive_floats {
246 ($f: ident) => {
247 $f::<u8, f32>();
248 $f::<u8, f64>();
249 $f::<u16, f32>();
250 $f::<u16, f64>();
251 $f::<u32, f32>();
252 $f::<u32, f64>();
253 $f::<u64, f32>();
254 $f::<u64, f64>();
255 $f::<u128, f32>();
256 $f::<u128, f64>();
257 $f::<usize, f32>();
258 $f::<usize, f64>();
259 };
260}
261
262#[doc(hidden)]
263#[macro_export]
264macro_rules! apply_fn_to_signeds_and_primitive_floats {
265 ($f: ident) => {
266 $f::<i8, f32>();
267 $f::<i8, f64>();
268 $f::<i16, f32>();
269 $f::<i16, f64>();
270 $f::<i32, f32>();
271 $f::<i32, f64>();
272 $f::<i64, f32>();
273 $f::<i64, f64>();
274 $f::<i128, f32>();
275 $f::<i128, f64>();
276 $f::<isize, f32>();
277 $f::<isize, f64>();
278 };
279}
280
281#[doc(hidden)]
282#[macro_export]
283macro_rules! apply_fn_to_primitive_ints_and_primitive_floats {
284 ($f: ident) => {
285 apply_fn_to_unsigneds_and_primitive_floats!($f);
286 apply_fn_to_signeds_and_primitive_floats!($f);
287 };
288}
289
290#[doc(hidden)]
291#[macro_export]
292macro_rules! apply_fn_to_primitive_floats_and_unsigneds {
293 ($f: ident) => {
294 $f::<f32, u8>();
295 $f::<f32, u16>();
296 $f::<f32, u32>();
297 $f::<f32, u64>();
298 $f::<f32, u128>();
299 $f::<f32, usize>();
300 $f::<f64, u8>();
301 $f::<f64, u16>();
302 $f::<f64, u32>();
303 $f::<f64, u64>();
304 $f::<f64, u128>();
305 $f::<f64, usize>();
306 };
307}
308
309#[doc(hidden)]
310#[macro_export]
311macro_rules! apply_fn_to_primitive_floats_and_signeds {
312 ($f: ident) => {
313 $f::<f32, i8>();
314 $f::<f32, i16>();
315 $f::<f32, i32>();
316 $f::<f32, i64>();
317 $f::<f32, i128>();
318 $f::<f32, isize>();
319 $f::<f64, i8>();
320 $f::<f64, i16>();
321 $f::<f64, i32>();
322 $f::<f64, i64>();
323 $f::<f64, i128>();
324 $f::<f64, isize>();
325 };
326}
327
328#[doc(hidden)]
329#[macro_export]
330macro_rules! apply_fn_to_primitive_floats_and_unsigned_signed_pairs {
331 ($f: ident) => {
332 $f::<f32, u8, i8>();
333 $f::<f32, u16, i16>();
334 $f::<f32, u32, i32>();
335 $f::<f32, u64, i64>();
336 $f::<f32, u128, i128>();
337 $f::<f32, usize, isize>();
338 $f::<f64, u8, i8>();
339 $f::<f64, u16, i16>();
340 $f::<f64, u32, i32>();
341 $f::<f64, u64, i64>();
342 $f::<f64, u128, i128>();
343 $f::<f64, usize, isize>();
344 };
345}
346
347#[doc(hidden)]
348#[macro_export]
349macro_rules! apply_fn_to_signeds_and_unsigneds {
350 ($f: ident) => {
351 $f::<i8, u8>();
352 $f::<i8, u16>();
353 $f::<i8, u32>();
354 $f::<i8, u64>();
355 $f::<i8, u128>();
356 $f::<i8, usize>();
357 $f::<i16, u8>();
358 $f::<i16, u16>();
359 $f::<i16, u32>();
360 $f::<i16, u64>();
361 $f::<i16, u128>();
362 $f::<i16, usize>();
363 $f::<i32, u8>();
364 $f::<i32, u16>();
365 $f::<i32, u32>();
366 $f::<i32, u64>();
367 $f::<i32, u128>();
368 $f::<i32, usize>();
369 $f::<i64, u8>();
370 $f::<i64, u16>();
371 $f::<i64, u32>();
372 $f::<i64, u64>();
373 $f::<i64, u128>();
374 $f::<i64, usize>();
375 $f::<i128, u8>();
376 $f::<i128, u16>();
377 $f::<i128, u32>();
378 $f::<i128, u64>();
379 $f::<i128, u128>();
380 $f::<i128, usize>();
381 $f::<isize, u8>();
382 $f::<isize, u16>();
383 $f::<isize, u32>();
384 $f::<isize, u64>();
385 $f::<isize, u128>();
386 $f::<isize, usize>();
387 };
388}
389
390#[doc(hidden)]
391#[macro_export]
392macro_rules! apply_fn_to_signeds_and_signeds {
393 ($f: ident) => {
394 $f::<i8, i8>();
395 $f::<i8, i16>();
396 $f::<i8, i32>();
397 $f::<i8, i64>();
398 $f::<i8, i128>();
399 $f::<i8, isize>();
400 $f::<i16, i8>();
401 $f::<i16, i16>();
402 $f::<i16, i32>();
403 $f::<i16, i64>();
404 $f::<i16, i128>();
405 $f::<i16, isize>();
406 $f::<i32, i8>();
407 $f::<i32, i16>();
408 $f::<i32, i32>();
409 $f::<i32, i64>();
410 $f::<i32, i128>();
411 $f::<i32, isize>();
412 $f::<i64, i8>();
413 $f::<i64, i16>();
414 $f::<i64, i32>();
415 $f::<i64, i64>();
416 $f::<i64, i128>();
417 $f::<i64, isize>();
418 $f::<i128, i8>();
419 $f::<i128, i16>();
420 $f::<i128, i32>();
421 $f::<i128, i64>();
422 $f::<i128, i128>();
423 $f::<i128, isize>();
424 $f::<isize, i8>();
425 $f::<isize, i16>();
426 $f::<isize, i32>();
427 $f::<isize, i64>();
428 $f::<isize, i128>();
429 $f::<isize, isize>();
430 };
431}
432
433#[doc(hidden)]
434#[macro_export]
435macro_rules! apply_fn_to_primitive_ints_and_unsigneds {
436 ($f: ident) => {
437 apply_fn_to_unsigneds_and_unsigneds!($f);
438 apply_fn_to_signeds_and_unsigneds!($f);
439 };
440}
441
442#[doc(hidden)]
443#[macro_export]
444macro_rules! apply_fn_to_primitive_ints_and_signeds {
445 ($f: ident) => {
446 apply_fn_to_unsigneds_and_signeds!($f);
447 apply_fn_to_signeds_and_signeds!($f);
448 };
449}
450
451#[doc(hidden)]
452#[macro_export]
453macro_rules! apply_fn_to_primitive_ints_and_primitive_ints {
454 ($f: ident) => {
455 apply_fn_to_primitive_ints_and_unsigneds!($f);
456 apply_fn_to_primitive_ints_and_signeds!($f);
457 };
458}
459
460#[doc(hidden)]
461#[macro_export]
462macro_rules! apply_to_primitive_floats {
463 ($m: tt) => {
464 $m!(f32);
465 $m!(f64);
466 };
467}
468
469#[doc(hidden)]
470#[macro_export]
471macro_rules! apply_to_primitive_float_unsigned_pairs {
472 ($m: tt) => {
473 $m!(f32, u32);
474 $m!(f64, u64);
475 };
476}
477
478#[doc(hidden)]
479#[macro_export]
480macro_rules! apply_fn_to_primitive_floats {
481 ($f: ident) => {
482 $f::<f32>();
483 $f::<f64>();
484 };
485}