x_bow/impls/stdlib/
tuple.rs

1macro_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);