@@ -235,29 +235,38 @@ impl<'self,A:IterBytes> IterBytes for &'self [A] {
235
235
}
236
236
}
237
237
238
- impl < A : IterBytes , B : IterBytes > IterBytes for ( A , B ) {
239
- #[ inline]
240
- fn iter_bytes ( & self , lsb0 : bool , f : Cb ) -> bool {
241
- match * self {
242
- ( ref a, ref b) => { a. iter_bytes ( lsb0, |b| f ( b) ) &&
243
- b. iter_bytes ( lsb0, |b| f ( b) ) }
244
- }
245
- }
246
- }
247
-
248
- impl < A : IterBytes , B : IterBytes , C : IterBytes > IterBytes for ( A , B , C ) {
249
- #[ inline]
250
- fn iter_bytes ( & self , lsb0 : bool , f : Cb ) -> bool {
251
- match * self {
252
- ( ref a, ref b, ref c) => {
253
- a. iter_bytes ( lsb0, |b| f ( b) ) &&
254
- b. iter_bytes ( lsb0, |b| f ( b) ) &&
255
- c. iter_bytes ( lsb0, |b| f ( b) )
256
- }
238
+ impl < A : IterBytes > IterBytes for ( A , ) {
239
+ fn iter_bytes ( & self , lsb0 : bool , f : Cb ) -> bool {
240
+ match * self {
241
+ ( ref a, ) => a. iter_bytes ( lsb0, |b| f ( b) )
242
+ }
257
243
}
258
- }
259
244
}
260
245
246
+ macro_rules! iter_bytes_tuple(
247
+ ( $( $A: ident) ,+) => (
248
+ impl <$( $A: IterBytes ) ,+> IterBytes for ( $( $A) ,+) {
249
+ fn iter_bytes( & self , lsb0: bool , f: Cb ) -> bool {
250
+ match * self {
251
+ ( $( ref $A) ,+) => {
252
+ $(
253
+ $A . iter_bytes( lsb0, |b| f( b) )
254
+ ) &&+
255
+ }
256
+ }
257
+ }
258
+ }
259
+ )
260
+ )
261
+
262
+ iter_bytes_tuple ! ( A , B )
263
+ iter_bytes_tuple ! ( A , B , C )
264
+ iter_bytes_tuple ! ( A , B , C , D )
265
+ iter_bytes_tuple ! ( A , B , C , D , E )
266
+ iter_bytes_tuple ! ( A , B , C , D , E , F )
267
+ iter_bytes_tuple ! ( A , B , C , D , E , F , G )
268
+ iter_bytes_tuple ! ( A , B , C , D , E , F , G , H )
269
+
261
270
impl < A : IterBytes > IterBytes for ~[ A ] {
262
271
#[ inline]
263
272
fn iter_bytes ( & self , lsb0 : bool , f : Cb ) -> bool {
0 commit comments