1use crate::Merge;
2
3macro_rules! merge_tuple {
4 () => {};
5 ($($t:ident $i:tt),*) => {
6 impl<$($t,)*> Merge for ($($t,)*)
7 where
8 $($t: Merge,)*
9 {
10 fn merge(&mut self, template: &Self) {
11 $(Merge::merge(&mut self.$i, &template.$i);)*
12 }
13 }
14 };
15}
16
17merge_tuple!(A 0);
18merge_tuple!(A 0, B 1);
19merge_tuple!(A 0, B 1, C 2);
20merge_tuple!(A 0, B 1, C 2, D 3);
21merge_tuple!(A 0, B 1, C 2, D 3, E 4);
22merge_tuple!(A 0, B 1, C 2, D 3, E 4, F 5);
23merge_tuple!(A 0, B 1, C 2, D 3, E 4, F 5, G 6);
24merge_tuple!(A 0, B 1, C 2, D 3, E 4, F 5, G 6, H 7);
25merge_tuple!(A 0, B 1, C 2, D 3, E 4, F 5, G 6, H 7, I 8);
26merge_tuple!(A 0, B 1, C 2, D 3, E 4, F 5, G 6, H 7, I 8, J 9);
27merge_tuple!(A 0, B 1, C 2, D 3, E 4, F 5, G 6, H 7, I 8, J 9, K 10);
28merge_tuple!(A 0, B 1, C 2, D 3, E 4, F 5, G 6, H 7, I 8, J 9, K 10, L 11);
29merge_tuple!(A 0, B 1, C 2, D 3, E 4, F 5, G 6, H 7, I 8, J 9, K 10, L 11, M 12);
30merge_tuple!(A 0, B 1, C 2, D 3, E 4, F 5, G 6, H 7, I 8, J 9, K 10, L 11, M 12, N 13);
31merge_tuple!(A 0, B 1, C 2, D 3, E 4, F 5, G 6, H 7, I 8, J 9, K 10, L 11, M 12, N 13, O 14);
32merge_tuple!(A 0, B 1, C 2, D 3, E 4, F 5, G 6, H 7, I 8, J 9, K 10, L 11, M 12, N 13, O 14, P 15);