@@ -449,6 +449,14 @@ impl<'de, 'a> SeqAccess<'de> for ListIter<'de, 'a> {
449449 Ok ( None )
450450 }
451451}
452+ impl < ' de , ' a > IntoDeserializer < ' de , DeError > for ListIter < ' de , ' a > {
453+ /// serde<=1.0.213 does not implement `IntoDeserializer` for `SeqAccessDeserializer`
454+ type Deserializer = SeqAccessDeserializer < Self > ;
455+
456+ fn into_deserializer ( self ) -> Self :: Deserializer {
457+ SeqAccessDeserializer :: new ( self )
458+ }
459+ }
452460
453461////////////////////////////////////////////////////////////////////////////////////////////////////
454462
@@ -759,7 +767,7 @@ impl<'de, 'a> Deserializer<'de> for SimpleTypeDeserializer<'de, 'a> {
759767
760768 fn deserialize_struct < V > (
761769 self ,
762- name : & ' static str ,
770+ _name : & ' static str ,
763771 fields : & ' static [ & ' static str ] ,
764772 visitor : V ,
765773 ) -> Result < V :: Value , Self :: Error >
@@ -777,9 +785,8 @@ impl<'de, 'a> Deserializer<'de> for SimpleTypeDeserializer<'de, 'a> {
777785 escaped : self . escaped ,
778786 } ;
779787
780- let seq_deserializer = SeqAccessDeserializer :: new ( list_iter) ;
781- let der = MapDeserializer :: new ( std:: iter:: once ( ( TEXT_KEY , seq_deserializer) ) ) ;
782- return der. deserialize_map ( visitor) ;
788+ let der = MapDeserializer :: new ( std:: iter:: once ( ( TEXT_KEY , list_iter) ) ) ;
789+ return visitor. visit_map ( der) ;
783790 }
784791 self . deserialize_str ( visitor)
785792 }
0 commit comments