1use super::{Encode, Encoder};
2use crate::error::EncodeError;
3
4impl<A> Encode for (A,)
5where
6 A: Encode,
7{
8 fn encode<_E: Encoder>(&self, encoder: &mut _E) -> Result<(), EncodeError> {
9 self.0.encode(encoder)?;
10 Ok(())
11 }
12}
13
14impl<A, B> Encode for (A, B)
15where
16 A: Encode,
17 B: Encode,
18{
19 fn encode<_E: Encoder>(&self, encoder: &mut _E) -> Result<(), EncodeError> {
20 self.0.encode(encoder)?;
21 self.1.encode(encoder)?;
22 Ok(())
23 }
24}
25
26impl<A, B, C> Encode for (A, B, C)
27where
28 A: Encode,
29 B: Encode,
30 C: Encode,
31{
32 fn encode<_E: Encoder>(&self, encoder: &mut _E) -> Result<(), EncodeError> {
33 self.0.encode(encoder)?;
34 self.1.encode(encoder)?;
35 self.2.encode(encoder)?;
36 Ok(())
37 }
38}
39
40impl<A, B, C, D> Encode for (A, B, C, D)
41where
42 A: Encode,
43 B: Encode,
44 C: Encode,
45 D: Encode,
46{
47 fn encode<_E: Encoder>(&self, encoder: &mut _E) -> Result<(), EncodeError> {
48 self.0.encode(encoder)?;
49 self.1.encode(encoder)?;
50 self.2.encode(encoder)?;
51 self.3.encode(encoder)?;
52 Ok(())
53 }
54}
55
56impl<A, B, C, D, E> Encode for (A, B, C, D, E)
57where
58 A: Encode,
59 B: Encode,
60 C: Encode,
61 D: Encode,
62 E: Encode,
63{
64 fn encode<_E: Encoder>(&self, encoder: &mut _E) -> Result<(), EncodeError> {
65 self.0.encode(encoder)?;
66 self.1.encode(encoder)?;
67 self.2.encode(encoder)?;
68 self.3.encode(encoder)?;
69 self.4.encode(encoder)?;
70 Ok(())
71 }
72}
73
74impl<A, B, C, D, E, F> Encode for (A, B, C, D, E, F)
75where
76 A: Encode,
77 B: Encode,
78 C: Encode,
79 D: Encode,
80 E: Encode,
81 F: Encode,
82{
83 fn encode<_E: Encoder>(&self, encoder: &mut _E) -> Result<(), EncodeError> {
84 self.0.encode(encoder)?;
85 self.1.encode(encoder)?;
86 self.2.encode(encoder)?;
87 self.3.encode(encoder)?;
88 self.4.encode(encoder)?;
89 self.5.encode(encoder)?;
90 Ok(())
91 }
92}
93
94impl<A, B, C, D, E, F, G> Encode for (A, B, C, D, E, F, G)
95where
96 A: Encode,
97 B: Encode,
98 C: Encode,
99 D: Encode,
100 E: Encode,
101 F: Encode,
102 G: Encode,
103{
104 fn encode<_E: Encoder>(&self, encoder: &mut _E) -> Result<(), EncodeError> {
105 self.0.encode(encoder)?;
106 self.1.encode(encoder)?;
107 self.2.encode(encoder)?;
108 self.3.encode(encoder)?;
109 self.4.encode(encoder)?;
110 self.5.encode(encoder)?;
111 self.6.encode(encoder)?;
112 Ok(())
113 }
114}
115
116impl<A, B, C, D, E, F, G, H> Encode for (A, B, C, D, E, F, G, H)
117where
118 A: Encode,
119 B: Encode,
120 C: Encode,
121 D: Encode,
122 E: Encode,
123 F: Encode,
124 G: Encode,
125 H: Encode,
126{
127 fn encode<_E: Encoder>(&self, encoder: &mut _E) -> Result<(), EncodeError> {
128 self.0.encode(encoder)?;
129 self.1.encode(encoder)?;
130 self.2.encode(encoder)?;
131 self.3.encode(encoder)?;
132 self.4.encode(encoder)?;
133 self.5.encode(encoder)?;
134 self.6.encode(encoder)?;
135 self.7.encode(encoder)?;
136 Ok(())
137 }
138}
139
140impl<A, B, C, D, E, F, G, H, I> Encode for (A, B, C, D, E, F, G, H, I)
141where
142 A: Encode,
143 B: Encode,
144 C: Encode,
145 D: Encode,
146 E: Encode,
147 F: Encode,
148 G: Encode,
149 H: Encode,
150 I: Encode,
151{
152 fn encode<_E: Encoder>(&self, encoder: &mut _E) -> Result<(), EncodeError> {
153 self.0.encode(encoder)?;
154 self.1.encode(encoder)?;
155 self.2.encode(encoder)?;
156 self.3.encode(encoder)?;
157 self.4.encode(encoder)?;
158 self.5.encode(encoder)?;
159 self.6.encode(encoder)?;
160 self.7.encode(encoder)?;
161 self.8.encode(encoder)?;
162 Ok(())
163 }
164}
165
166impl<A, B, C, D, E, F, G, H, I, J> Encode for (A, B, C, D, E, F, G, H, I, J)
167where
168 A: Encode,
169 B: Encode,
170 C: Encode,
171 D: Encode,
172 E: Encode,
173 F: Encode,
174 G: Encode,
175 H: Encode,
176 I: Encode,
177 J: Encode,
178{
179 fn encode<_E: Encoder>(&self, encoder: &mut _E) -> Result<(), EncodeError> {
180 self.0.encode(encoder)?;
181 self.1.encode(encoder)?;
182 self.2.encode(encoder)?;
183 self.3.encode(encoder)?;
184 self.4.encode(encoder)?;
185 self.5.encode(encoder)?;
186 self.6.encode(encoder)?;
187 self.7.encode(encoder)?;
188 self.8.encode(encoder)?;
189 self.9.encode(encoder)?;
190 Ok(())
191 }
192}
193
194impl<A, B, C, D, E, F, G, H, I, J, K> Encode for (A, B, C, D, E, F, G, H, I, J, K)
195where
196 A: Encode,
197 B: Encode,
198 C: Encode,
199 D: Encode,
200 E: Encode,
201 F: Encode,
202 G: Encode,
203 H: Encode,
204 I: Encode,
205 J: Encode,
206 K: Encode,
207{
208 fn encode<_E: Encoder>(&self, encoder: &mut _E) -> Result<(), EncodeError> {
209 self.0.encode(encoder)?;
210 self.1.encode(encoder)?;
211 self.2.encode(encoder)?;
212 self.3.encode(encoder)?;
213 self.4.encode(encoder)?;
214 self.5.encode(encoder)?;
215 self.6.encode(encoder)?;
216 self.7.encode(encoder)?;
217 self.8.encode(encoder)?;
218 self.9.encode(encoder)?;
219 self.10.encode(encoder)?;
220 Ok(())
221 }
222}
223
224impl<A, B, C, D, E, F, G, H, I, J, K, L> Encode for (A, B, C, D, E, F, G, H, I, J, K, L)
225where
226 A: Encode,
227 B: Encode,
228 C: Encode,
229 D: Encode,
230 E: Encode,
231 F: Encode,
232 G: Encode,
233 H: Encode,
234 I: Encode,
235 J: Encode,
236 K: Encode,
237 L: Encode,
238{
239 fn encode<_E: Encoder>(&self, encoder: &mut _E) -> Result<(), EncodeError> {
240 self.0.encode(encoder)?;
241 self.1.encode(encoder)?;
242 self.2.encode(encoder)?;
243 self.3.encode(encoder)?;
244 self.4.encode(encoder)?;
245 self.5.encode(encoder)?;
246 self.6.encode(encoder)?;
247 self.7.encode(encoder)?;
248 self.8.encode(encoder)?;
249 self.9.encode(encoder)?;
250 self.10.encode(encoder)?;
251 self.11.encode(encoder)?;
252 Ok(())
253 }
254}
255
256impl<A, B, C, D, E, F, G, H, I, J, K, L, M> Encode for (A, B, C, D, E, F, G, H, I, J, K, L, M)
257where
258 A: Encode,
259 B: Encode,
260 C: Encode,
261 D: Encode,
262 E: Encode,
263 F: Encode,
264 G: Encode,
265 H: Encode,
266 I: Encode,
267 J: Encode,
268 K: Encode,
269 L: Encode,
270 M: Encode,
271{
272 fn encode<_E: Encoder>(&self, encoder: &mut _E) -> Result<(), EncodeError> {
273 self.0.encode(encoder)?;
274 self.1.encode(encoder)?;
275 self.2.encode(encoder)?;
276 self.3.encode(encoder)?;
277 self.4.encode(encoder)?;
278 self.5.encode(encoder)?;
279 self.6.encode(encoder)?;
280 self.7.encode(encoder)?;
281 self.8.encode(encoder)?;
282 self.9.encode(encoder)?;
283 self.10.encode(encoder)?;
284 self.11.encode(encoder)?;
285 self.12.encode(encoder)?;
286 Ok(())
287 }
288}
289
290impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N> Encode for (A, B, C, D, E, F, G, H, I, J, K, L, M, N)
291where
292 A: Encode,
293 B: Encode,
294 C: Encode,
295 D: Encode,
296 E: Encode,
297 F: Encode,
298 G: Encode,
299 H: Encode,
300 I: Encode,
301 J: Encode,
302 K: Encode,
303 L: Encode,
304 M: Encode,
305 N: Encode,
306{
307 fn encode<_E: Encoder>(&self, encoder: &mut _E) -> Result<(), EncodeError> {
308 self.0.encode(encoder)?;
309 self.1.encode(encoder)?;
310 self.2.encode(encoder)?;
311 self.3.encode(encoder)?;
312 self.4.encode(encoder)?;
313 self.5.encode(encoder)?;
314 self.6.encode(encoder)?;
315 self.7.encode(encoder)?;
316 self.8.encode(encoder)?;
317 self.9.encode(encoder)?;
318 self.10.encode(encoder)?;
319 self.11.encode(encoder)?;
320 self.12.encode(encoder)?;
321 self.13.encode(encoder)?;
322 Ok(())
323 }
324}
325
326impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O> Encode
327 for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O)
328where
329 A: Encode,
330 B: Encode,
331 C: Encode,
332 D: Encode,
333 E: Encode,
334 F: Encode,
335 G: Encode,
336 H: Encode,
337 I: Encode,
338 J: Encode,
339 K: Encode,
340 L: Encode,
341 M: Encode,
342 N: Encode,
343 O: Encode,
344{
345 fn encode<_E: Encoder>(&self, encoder: &mut _E) -> Result<(), EncodeError> {
346 self.0.encode(encoder)?;
347 self.1.encode(encoder)?;
348 self.2.encode(encoder)?;
349 self.3.encode(encoder)?;
350 self.4.encode(encoder)?;
351 self.5.encode(encoder)?;
352 self.6.encode(encoder)?;
353 self.7.encode(encoder)?;
354 self.8.encode(encoder)?;
355 self.9.encode(encoder)?;
356 self.10.encode(encoder)?;
357 self.11.encode(encoder)?;
358 self.12.encode(encoder)?;
359 self.13.encode(encoder)?;
360 self.14.encode(encoder)?;
361 Ok(())
362 }
363}
364
365impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P> Encode
366 for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P)
367where
368 A: Encode,
369 B: Encode,
370 C: Encode,
371 D: Encode,
372 E: Encode,
373 F: Encode,
374 G: Encode,
375 H: Encode,
376 I: Encode,
377 J: Encode,
378 K: Encode,
379 L: Encode,
380 M: Encode,
381 N: Encode,
382 O: Encode,
383 P: Encode,
384{
385 fn encode<_E: Encoder>(&self, encoder: &mut _E) -> Result<(), EncodeError> {
386 self.0.encode(encoder)?;
387 self.1.encode(encoder)?;
388 self.2.encode(encoder)?;
389 self.3.encode(encoder)?;
390 self.4.encode(encoder)?;
391 self.5.encode(encoder)?;
392 self.6.encode(encoder)?;
393 self.7.encode(encoder)?;
394 self.8.encode(encoder)?;
395 self.9.encode(encoder)?;
396 self.10.encode(encoder)?;
397 self.11.encode(encoder)?;
398 self.12.encode(encoder)?;
399 self.13.encode(encoder)?;
400 self.14.encode(encoder)?;
401 self.15.encode(encoder)?;
402 Ok(())
403 }
404}