object_merge/imp/
tuple.rs

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