Skip to main content

bincode_next/enc/
impl_tuples.rs

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