@@ -11,12 +11,8 @@ use smallvec::{Array, SmallVec};
11
11
12
12
impl < S : Encoder , A : Array < Item : Encodable < S > > > Encodable < S > for SmallVec < A > {
13
13
fn encode ( & self , s : & mut S ) -> Result < ( ) , S :: Error > {
14
- s. emit_seq ( self . len ( ) , |s| {
15
- for ( i, e) in self . iter ( ) . enumerate ( ) {
16
- s. emit_seq_elt ( i, |s| e. encode ( s) ) ?;
17
- }
18
- Ok ( ( ) )
19
- } )
14
+ let slice: & [ A :: Item ] = self ;
15
+ slice. encode ( s)
20
16
}
21
17
}
22
18
@@ -292,12 +288,8 @@ where
292
288
293
289
impl < E : Encoder , T : Encodable < E > > Encodable < E > for Rc < [ T ] > {
294
290
fn encode ( & self , s : & mut E ) -> Result < ( ) , E :: Error > {
295
- s. emit_seq ( self . len ( ) , |s| {
296
- for ( index, e) in self . iter ( ) . enumerate ( ) {
297
- s. emit_seq_elt ( index, |s| e. encode ( s) ) ?;
298
- }
299
- Ok ( ( ) )
300
- } )
291
+ let slice: & [ T ] = self ;
292
+ slice. encode ( s)
301
293
}
302
294
}
303
295
@@ -315,12 +307,8 @@ impl<D: Decoder, T: Decodable<D>> Decodable<D> for Rc<[T]> {
315
307
316
308
impl < E : Encoder , T : Encodable < E > > Encodable < E > for Arc < [ T ] > {
317
309
fn encode ( & self , s : & mut E ) -> Result < ( ) , E :: Error > {
318
- s. emit_seq ( self . len ( ) , |s| {
319
- for ( index, e) in self . iter ( ) . enumerate ( ) {
320
- s. emit_seq_elt ( index, |s| e. encode ( s) ) ?;
321
- }
322
- Ok ( ( ) )
323
- } )
310
+ let slice: & [ T ] = self ;
311
+ slice. encode ( s)
324
312
}
325
313
}
326
314
0 commit comments