@@ -166,6 +166,23 @@ macro_rules! impl_for_deserialize_primitive {
166166 } ;
167167}
168168
169+ impl < ' a , ' de , It > serde:: de:: EnumAccess < ' de > for & ' a mut Deserializer < ' de , It >
170+ where
171+ It : iter:: FusedIterator + Iterator < Item = & ' de [ u8 ] > ,
172+ {
173+ type Error = Error ;
174+ type Variant = Self ;
175+
176+ fn variant_seed < V > ( self , seed : V ) -> Result < ( V :: Value , Self :: Variant ) >
177+ where
178+ V : de:: DeserializeSeed < ' de > ,
179+ {
180+ let idx: u32 = self . next_u32 ( ) ?;
181+ let val: Result < _ > = seed. deserialize ( idx. into_deserializer ( ) ) ;
182+ Ok ( ( val?, self ) )
183+ }
184+ }
185+
169186impl < ' de , ' a , It > de:: Deserializer < ' de > for & ' a mut Deserializer < ' de , It >
170187where
171188 It : iter:: FusedIterator + Iterator < Item = & ' de [ u8 ] > ,
@@ -316,23 +333,6 @@ where
316333 where
317334 V : Visitor < ' de > ,
318335 {
319- impl < ' a , ' de , It > serde:: de:: EnumAccess < ' de > for & ' a mut Deserializer < ' de , It >
320- where
321- It : iter:: FusedIterator + Iterator < Item = & ' de [ u8 ] > ,
322- {
323- type Error = Error ;
324- type Variant = Self ;
325-
326- fn variant_seed < V > ( self , seed : V ) -> Result < ( V :: Value , Self :: Variant ) >
327- where
328- V : de:: DeserializeSeed < ' de > ,
329- {
330- let idx: u32 = self . next_u32 ( ) ?;
331- let val: Result < _ > = seed. deserialize ( idx. into_deserializer ( ) ) ;
332- Ok ( ( val?, self ) )
333- }
334- }
335-
336336 visitor. visit_enum ( self )
337337 }
338338
@@ -471,7 +471,7 @@ mod tests {
471471
472472 /// Generate subslices, plus stuffing empty slices into the returned
473473 /// iterator.
474- fn generate_subslices ( mut bytes : & [ u8 ] , chunk_size : usize ) -> impl Iterator < Item = & [ u8 ] > {
474+ fn generate_subslices < ' a > ( mut bytes : & ' a [ u8 ] , chunk_size : usize ) -> impl Iterator < Item = & ' a [ u8 ] > {
475475 assert_ne ! ( chunk_size, 0 ) ;
476476
477477 Gn :: new_scoped ( move |mut s| loop {
0 commit comments