x_bow/impls/stdlib/
tuple.rs1macro_rules! make_tuple_impl {
2 ($modname:ident | $($tn:ident),+) => {
3 mod $modname {
4 use x_bow_macros::Trackable;
5 type Tuple<$($tn),+> = ($($tn,)+);
6 #[allow(dead_code)]
7 #[derive(Trackable)]
8 #[x_bow(module_prefix = crate::__private_macro_only)]
9 #[x_bow(remote_type = Tuple)]
10 #[track(deep)]
11 pub struct Imitator<$($tn),+>($(pub $tn,)+);
12 }
13 };
14}
15
16make_tuple_impl!(t1 | T0);
17make_tuple_impl!(t2 | T0, T1);
18make_tuple_impl!(t3 | T0, T1, T2);
19make_tuple_impl!(t4 | T0, T1, T2, T3);
20make_tuple_impl!(t5 | T0, T1, T2, T3, T4);
21make_tuple_impl!(t6 | T0, T1, T2, T3, T4, T5);
22make_tuple_impl!(t7 | T0, T1, T2, T3, T4, T5, T6);
23make_tuple_impl!(t8 | T0, T1, T2, T3, T4, T5, T6, T7);
24make_tuple_impl!(t9 | T0, T1, T2, T3, T4, T5, T6, T7, T8);
25make_tuple_impl!(t10 | T0, T1, T2, T3, T4, T5, T6, T7, T8, T9);
26make_tuple_impl!(t11 | T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10);
27make_tuple_impl!(t12 | T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11);