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}