1pub trait DynamicReset {
2 fn reset(&mut self);
3}
4
5impl<T> DynamicReset for Option<T>
6where
7 T: DynamicReset,
8{
9 fn reset(&mut self) {
10 if let Some(x) = self {
11 x.reset();
12 }
13 }
14}
15
16impl<T1, T2> DynamicReset for (T1, T2)
17where
18 T1: DynamicReset,
19 T2: DynamicReset,
20{
21 fn reset(&mut self) {
22 self.0.reset();
23 self.1.reset();
24 }
25}
26
27impl<T1, T2, T3> DynamicReset for (T1, T2, T3)
28where
29 T1: DynamicReset,
30 T2: DynamicReset,
31 T3: DynamicReset,
32{
33 fn reset(&mut self) {
34 self.0.reset();
35 self.1.reset();
36 self.2.reset();
37 }
38}
39
40impl<T1, T2, T3, T4> DynamicReset for (T1, T2, T3, T4)
41where
42 T1: DynamicReset,
43 T2: DynamicReset,
44 T3: DynamicReset,
45 T4: DynamicReset,
46{
47 fn reset(&mut self) {
48 self.0.reset();
49 self.1.reset();
50 self.2.reset();
51 self.3.reset();
52 }
53}
54
55impl<T1, T2, T3, T4, T5> DynamicReset for (T1, T2, T3, T4, T5)
56where
57 T1: DynamicReset,
58 T2: DynamicReset,
59 T3: DynamicReset,
60 T4: DynamicReset,
61 T5: DynamicReset,
62{
63 fn reset(&mut self) {
64 self.0.reset();
65 self.1.reset();
66 self.2.reset();
67 self.3.reset();
68 self.4.reset();
69 }
70}
71
72impl<T1, T2, T3, T4, T5, T6> DynamicReset for (T1, T2, T3, T4, T5, T6)
73where
74 T1: DynamicReset,
75 T2: DynamicReset,
76 T3: DynamicReset,
77 T4: DynamicReset,
78 T5: DynamicReset,
79 T6: DynamicReset,
80{
81 fn reset(&mut self) {
82 self.0.reset();
83 self.1.reset();
84 self.2.reset();
85 self.3.reset();
86 self.4.reset();
87 self.5.reset();
88 }
89}
90
91impl<T1, T2, T3, T4, T5, T6, T7> DynamicReset for (T1, T2, T3, T4, T5, T6, T7)
92where
93 T1: DynamicReset,
94 T2: DynamicReset,
95 T3: DynamicReset,
96 T4: DynamicReset,
97 T5: DynamicReset,
98 T6: DynamicReset,
99 T7: DynamicReset,
100{
101 fn reset(&mut self) {
102 self.0.reset();
103 self.1.reset();
104 self.2.reset();
105 self.3.reset();
106 self.4.reset();
107 self.5.reset();
108 self.6.reset();
109 }
110}
111
112impl<T1, T2, T3, T4, T5, T6, T7, T8> DynamicReset for (T1, T2, T3, T4, T5, T6, T7, T8)
113where
114 T1: DynamicReset,
115 T2: DynamicReset,
116 T3: DynamicReset,
117 T4: DynamicReset,
118 T5: DynamicReset,
119 T6: DynamicReset,
120 T7: DynamicReset,
121 T8: DynamicReset,
122{
123 fn reset(&mut self) {
124 self.0.reset();
125 self.1.reset();
126 self.2.reset();
127 self.3.reset();
128 self.4.reset();
129 self.5.reset();
130 self.6.reset();
131 self.7.reset();
132 }
133}
134
135impl<T1, T2, T3, T4, T5, T6, T7, T8, T9> DynamicReset for (T1, T2, T3, T4, T5, T6, T7, T8, T9)
136where
137 T1: DynamicReset,
138 T2: DynamicReset,
139 T3: DynamicReset,
140 T4: DynamicReset,
141 T5: DynamicReset,
142 T6: DynamicReset,
143 T7: DynamicReset,
144 T8: DynamicReset,
145 T9: DynamicReset,
146{
147 fn reset(&mut self) {
148 self.0.reset();
149 self.1.reset();
150 self.2.reset();
151 self.3.reset();
152 self.4.reset();
153 self.5.reset();
154 self.6.reset();
155 self.7.reset();
156 self.8.reset();
157 }
158}
159
160impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> DynamicReset
161 for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
162where
163 T1: DynamicReset,
164 T2: DynamicReset,
165 T3: DynamicReset,
166 T4: DynamicReset,
167 T5: DynamicReset,
168 T6: DynamicReset,
169 T7: DynamicReset,
170 T8: DynamicReset,
171 T9: DynamicReset,
172 T10: DynamicReset,
173{
174 fn reset(&mut self) {
175 self.0.reset();
176 self.1.reset();
177 self.2.reset();
178 self.3.reset();
179 self.4.reset();
180 self.5.reset();
181 self.6.reset();
182 self.7.reset();
183 self.8.reset();
184 self.9.reset();
185 }
186}