@@ -11,12 +11,8 @@ use smallvec::{Array, SmallVec};
1111
1212impl < S : Encoder , A : Array < Item : Encodable < S > > > Encodable < S > for SmallVec < A > {
1313 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)
2016 }
2117}
2218
@@ -292,12 +288,8 @@ where
292288
293289impl < E : Encoder , T : Encodable < E > > Encodable < E > for Rc < [ T ] > {
294290 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)
301293 }
302294}
303295
@@ -315,12 +307,8 @@ impl<D: Decoder, T: Decodable<D>> Decodable<D> for Rc<[T]> {
315307
316308impl < E : Encoder , T : Encodable < E > > Encodable < E > for Arc < [ T ] > {
317309 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)
324312 }
325313}
326314
0 commit comments