x-bow 0.2.0

Precise State Management Library
Documentation
macro_rules! make_tuple_impl {
	($modname:ident | $($tn:ident),+) => {
		mod $modname {
			use x_bow_macros::Trackable;
			type Tuple<$($tn),+> = ($($tn,)+);
			#[allow(dead_code)]
			#[derive(Trackable)]
			#[x_bow(module_prefix = crate::__private_macro_only)]
			#[x_bow(remote_type = Tuple)]
			#[track(deep)]
			pub struct Imitator<$($tn),+>($(pub $tn,)+);
		}
	};
}

make_tuple_impl!(t1 | T0);
make_tuple_impl!(t2 | T0, T1);
make_tuple_impl!(t3 | T0, T1, T2);
make_tuple_impl!(t4 | T0, T1, T2, T3);
make_tuple_impl!(t5 | T0, T1, T2, T3, T4);
make_tuple_impl!(t6 | T0, T1, T2, T3, T4, T5);
make_tuple_impl!(t7 | T0, T1, T2, T3, T4, T5, T6);
make_tuple_impl!(t8 | T0, T1, T2, T3, T4, T5, T6, T7);
make_tuple_impl!(t9 | T0, T1, T2, T3, T4, T5, T6, T7, T8);
make_tuple_impl!(t10 | T0, T1, T2, T3, T4, T5, T6, T7, T8, T9);
make_tuple_impl!(t11 | T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10);
make_tuple_impl!(t12 | T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11);