bincode/enc/
impl_tuples.rs

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}