1use crate::{hint, Parcel, Error, Settings};
2
3use std::io::prelude::*;
4
5impl<T0, T1> Parcel for (T0, T1)
6 where T0: Parcel, T1: Parcel
7{
8 const TYPE_NAME: &'static str = "(T0, T1)";
9
10 fn read_field(read: &mut dyn Read,
11 settings: &Settings,
12 _: &mut hint::Hints) -> Result<Self, Error> {
13 let v0 = T0::read(read, settings)?;
14 let v1 = T1::read(read, settings)?;
15 Ok((v0, v1))
16 }
17
18 fn write_field(&self, write: &mut dyn Write,
19 settings: &Settings,
20 _: &mut hint::Hints) -> Result<(), Error> {
21 self.0.write(write, settings)?;
22 self.1.write(write, settings)?;
23
24 Ok(())
25 }
26}
27
28impl<T0, T1, T2> Parcel for (T0, T1, T2)
29 where T0: Parcel, T1: Parcel, T2: Parcel
30{
31 const TYPE_NAME: &'static str = "(T0, T1, T2)";
32
33 fn read_field(read: &mut dyn Read,
34 settings: &Settings,
35 _: &mut hint::Hints) -> Result<Self, Error> {
36 let v0 = T0::read(read, settings)?;
37 let v1 = T1::read(read, settings)?;
38 let v2 = T2::read(read, settings)?;
39 Ok((v0, v1, v2))
40 }
41
42 fn write_field(&self, write: &mut dyn Write,
43 settings: &Settings,
44 _: &mut hint::Hints) -> Result<(), Error> {
45 self.0.write(write, settings)?;
46 self.1.write(write, settings)?;
47 self.2.write(write, settings)?;
48
49 Ok(())
50 }
51}
52
53impl<T0, T1, T2, T3> Parcel for (T0, T1, T2, T3)
54 where T0: Parcel, T1: Parcel, T2: Parcel, T3: Parcel
55{
56 const TYPE_NAME: &'static str = "(T0, T1, T2, T3)";
57
58 fn read_field(read: &mut dyn Read,
59 settings: &Settings,
60 _: &mut hint::Hints) -> Result<Self, Error> {
61 let v0 = T0::read(read, settings)?;
62 let v1 = T1::read(read, settings)?;
63 let v2 = T2::read(read, settings)?;
64 let v3 = T3::read(read, settings)?;
65 Ok((v0, v1, v2, v3))
66 }
67
68 fn write_field(&self, write: &mut dyn Write,
69 settings: &Settings,
70 _: &mut hint::Hints) -> Result<(), Error> {
71 self.0.write(write, settings)?;
72 self.1.write(write, settings)?;
73 self.2.write(write, settings)?;
74 self.3.write(write, settings)?;
75
76 Ok(())
77 }
78}
79
80impl<T0, T1, T2, T3, T4> Parcel for (T0, T1, T2, T3, T4)
81 where T0: Parcel, T1: Parcel, T2: Parcel, T3: Parcel, T4: Parcel
82{
83 const TYPE_NAME: &'static str = "(T0, T1, T2, T3, T4)";
84
85 fn read_field(read: &mut dyn Read,
86 settings: &Settings,
87 _: &mut hint::Hints) -> Result<Self, Error> {
88 let v0 = T0::read(read, settings)?;
89 let v1 = T1::read(read, settings)?;
90 let v2 = T2::read(read, settings)?;
91 let v3 = T3::read(read, settings)?;
92 let v4 = T4::read(read, settings)?;
93 Ok((v0, v1, v2, v3, v4))
94 }
95
96 fn write_field(&self, write: &mut dyn Write,
97 settings: &Settings,
98 _: &mut hint::Hints) -> Result<(), Error> {
99 self.0.write(write, settings)?;
100 self.1.write(write, settings)?;
101 self.2.write(write, settings)?;
102 self.3.write(write, settings)?;
103 self.4.write(write, settings)?;
104
105 Ok(())
106 }
107}
108
109impl<T0, T1, T2, T3, T4, T5> Parcel for (T0, T1, T2, T3, T4, T5)
110 where T0: Parcel, T1: Parcel, T2: Parcel, T3: Parcel, T4: Parcel,
111 T5: Parcel,
112{
113 const TYPE_NAME: &'static str = "(T0, T1, T2, T3, T4, T5)";
114
115 fn read_field(read: &mut dyn Read,
116 settings: &Settings,
117 _: &mut hint::Hints) -> Result<Self, Error> {
118 let v0 = T0::read(read, settings)?;
119 let v1 = T1::read(read, settings)?;
120 let v2 = T2::read(read, settings)?;
121 let v3 = T3::read(read, settings)?;
122 let v4 = T4::read(read, settings)?;
123 let v5 = T5::read(read, settings)?;
124 Ok((v0, v1, v2, v3, v4, v5))
125 }
126
127 fn write_field(&self, write: &mut dyn Write,
128 settings: &Settings,
129 _: &mut hint::Hints) -> Result<(), Error> {
130 self.0.write(write, settings)?;
131 self.1.write(write, settings)?;
132 self.2.write(write, settings)?;
133 self.3.write(write, settings)?;
134 self.4.write(write, settings)?;
135 self.5.write(write, settings)?;
136
137 Ok(())
138 }
139}
140
141impl<T0, T1, T2, T3, T4, T5, T6> Parcel for (T0, T1, T2, T3, T4, T5, T6)
142 where T0: Parcel, T1: Parcel, T2: Parcel, T3: Parcel, T4: Parcel,
143 T5: Parcel, T6: Parcel,
144{
145 const TYPE_NAME: &'static str = "(T0, T1, T2, T3, T4, T5, T6)";
146
147 fn read_field(read: &mut dyn Read,
148 settings: &Settings,
149 _: &mut hint::Hints) -> Result<Self, Error> {
150 let v0 = T0::read(read, settings)?;
151 let v1 = T1::read(read, settings)?;
152 let v2 = T2::read(read, settings)?;
153 let v3 = T3::read(read, settings)?;
154 let v4 = T4::read(read, settings)?;
155 let v5 = T5::read(read, settings)?;
156 let v6 = T6::read(read, settings)?;
157 Ok((v0, v1, v2, v3, v4, v5, v6))
158 }
159
160 fn write_field(&self, write: &mut dyn Write,
161 settings: &Settings,
162 _: &mut hint::Hints) -> Result<(), Error> {
163 self.0.write(write, settings)?;
164 self.1.write(write, settings)?;
165 self.2.write(write, settings)?;
166 self.3.write(write, settings)?;
167 self.4.write(write, settings)?;
168 self.5.write(write, settings)?;
169 self.6.write(write, settings)?;
170
171 Ok(())
172 }
173}
174
175impl<T0, T1, T2, T3, T4, T5, T6, T7> Parcel for (T0, T1, T2, T3, T4, T5, T6, T7)
176 where T0: Parcel, T1: Parcel, T2: Parcel, T3: Parcel, T4: Parcel,
177 T5: Parcel, T6: Parcel, T7: Parcel,
178{
179 const TYPE_NAME: &'static str = "(T0, T1, T2, T3, T4, T5, T6, T7)";
180
181 fn read_field(read: &mut dyn Read,
182 settings: &Settings,
183 _: &mut hint::Hints) -> Result<Self, Error> {
184 let v0 = T0::read(read, settings)?;
185 let v1 = T1::read(read, settings)?;
186 let v2 = T2::read(read, settings)?;
187 let v3 = T3::read(read, settings)?;
188 let v4 = T4::read(read, settings)?;
189 let v5 = T5::read(read, settings)?;
190 let v6 = T6::read(read, settings)?;
191 let v7 = T7::read(read, settings)?;
192 Ok((v0, v1, v2, v3, v4, v5, v6, v7))
193 }
194
195 fn write_field(&self, write: &mut dyn Write,
196 settings: &Settings,
197 _: &mut hint::Hints) -> Result<(), Error> {
198 self.0.write(write, settings)?;
199 self.1.write(write, settings)?;
200 self.2.write(write, settings)?;
201 self.3.write(write, settings)?;
202 self.4.write(write, settings)?;
203 self.5.write(write, settings)?;
204 self.6.write(write, settings)?;
205 self.7.write(write, settings)?;
206
207 Ok(())
208 }
209}
210
211impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Parcel for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
212 where T0: Parcel, T1: Parcel, T2: Parcel, T3: Parcel, T4: Parcel,
213 T5: Parcel, T6: Parcel, T7: Parcel, T8: Parcel,
214{
215 const TYPE_NAME: &'static str = "(T0, T1, T2, T3, T4, T5, T6, T7, T8)";
216
217 fn read_field(read: &mut dyn Read,
218 settings: &Settings,
219 _: &mut hint::Hints) -> Result<Self, Error> {
220 let v0 = T0::read(read, settings)?;
221 let v1 = T1::read(read, settings)?;
222 let v2 = T2::read(read, settings)?;
223 let v3 = T3::read(read, settings)?;
224 let v4 = T4::read(read, settings)?;
225 let v5 = T5::read(read, settings)?;
226 let v6 = T6::read(read, settings)?;
227 let v7 = T7::read(read, settings)?;
228 let v8 = T8::read(read, settings)?;
229 Ok((v0, v1, v2, v3, v4, v5, v6, v7, v8))
230 }
231
232 fn write_field(&self, write: &mut dyn Write,
233 settings: &Settings,
234 _: &mut hint::Hints) -> Result<(), Error> {
235 self.0.write(write, settings)?;
236 self.1.write(write, settings)?;
237 self.2.write(write, settings)?;
238 self.3.write(write, settings)?;
239 self.4.write(write, settings)?;
240 self.5.write(write, settings)?;
241 self.6.write(write, settings)?;
242 self.7.write(write, settings)?;
243 self.8.write(write, settings)?;
244
245 Ok(())
246 }
247}
248
249impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Parcel for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
250 where T0: Parcel, T1: Parcel, T2: Parcel, T3: Parcel, T4: Parcel,
251 T5: Parcel, T6: Parcel, T7: Parcel, T8: Parcel, T9: Parcel,
252{
253 const TYPE_NAME: &'static str = "(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)";
254
255 fn read_field(read: &mut dyn Read,
256 settings: &Settings,
257 _: &mut hint::Hints) -> Result<Self, Error> {
258 let v0 = T0::read(read, settings)?;
259 let v1 = T1::read(read, settings)?;
260 let v2 = T2::read(read, settings)?;
261 let v3 = T3::read(read, settings)?;
262 let v4 = T4::read(read, settings)?;
263 let v5 = T5::read(read, settings)?;
264 let v6 = T6::read(read, settings)?;
265 let v7 = T7::read(read, settings)?;
266 let v8 = T8::read(read, settings)?;
267 let v9 = T9::read(read, settings)?;
268 Ok((v0, v1, v2, v3, v4, v5, v6, v7, v8, v9))
269 }
270
271 fn write_field(&self, write: &mut dyn Write,
272 settings: &Settings,
273 _: &mut hint::Hints) -> Result<(), Error> {
274 self.0.write(write, settings)?;
275 self.1.write(write, settings)?;
276 self.2.write(write, settings)?;
277 self.3.write(write, settings)?;
278 self.4.write(write, settings)?;
279 self.5.write(write, settings)?;
280 self.6.write(write, settings)?;
281 self.7.write(write, settings)?;
282 self.8.write(write, settings)?;
283 self.9.write(write, settings)?;
284
285 Ok(())
286 }
287}
288
289impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Parcel for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
290 where T0: Parcel, T1: Parcel, T2: Parcel, T3: Parcel, T4: Parcel,
291 T5: Parcel, T6: Parcel, T7: Parcel, T8: Parcel, T9: Parcel,
292 T10: Parcel,
293{
294 const TYPE_NAME: &'static str = "(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)";
295
296 fn read_field(read: &mut dyn Read,
297 settings: &Settings,
298 _: &mut hint::Hints) -> Result<Self, Error> {
299 let v0 = T0::read(read, settings)?;
300 let v1 = T1::read(read, settings)?;
301 let v2 = T2::read(read, settings)?;
302 let v3 = T3::read(read, settings)?;
303 let v4 = T4::read(read, settings)?;
304 let v5 = T5::read(read, settings)?;
305 let v6 = T6::read(read, settings)?;
306 let v7 = T7::read(read, settings)?;
307 let v8 = T8::read(read, settings)?;
308 let v9 = T9::read(read, settings)?;
309 let v10 = T10::read(read, settings)?;
310 Ok((v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10))
311 }
312
313 fn write_field(&self, write: &mut dyn Write,
314 settings: &Settings,
315 _: &mut hint::Hints) -> Result<(), Error> {
316 self.0.write(write, settings)?;
317 self.1.write(write, settings)?;
318 self.2.write(write, settings)?;
319 self.3.write(write, settings)?;
320 self.4.write(write, settings)?;
321 self.5.write(write, settings)?;
322 self.6.write(write, settings)?;
323 self.7.write(write, settings)?;
324 self.8.write(write, settings)?;
325 self.9.write(write, settings)?;
326 self.10.write(write, settings)?;
327
328 Ok(())
329 }
330}