batbox_tuple_macros/lib.rs
1//! Provides macros to work with tuples
2#![warn(missing_docs)]
3
4/// calls a macro provided as argument for tuples of all sizes
5///
6/// # Example
7/// ```
8/// trait Foo {}
9/// macro_rules! impl_for_tuple {
10/// ($($a:ident),*) => {
11/// impl<$($a),*> Foo for ($($a,)*) {}
12/// }
13/// }
14/// batbox_tuple_macros::call_for_tuples!(impl_for_tuple);
15/// ```
16#[macro_export]
17macro_rules! call_for_tuples {
18 ($macro:ident) => {
19 $macro!();
20 $macro!(a0);
21 $macro!(a0, a1);
22 $macro!(a0, a1, a2);
23 $macro!(a0, a1, a2, a3);
24 $macro!(a0, a1, a2, a3, a4);
25 $macro!(a0, a1, a2, a3, a4, a5);
26 $macro!(a0, a1, a2, a3, a4, a5, a6);
27 $macro!(a0, a1, a2, a3, a4, a5, a6, a7);
28 $macro!(a0, a1, a2, a3, a4, a5, a6, a7, a8);
29 $macro!(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
30 };
31}