@@ -49,13 +49,13 @@ impl<'a> ser::Serialize for GraphQLError<'a> {
49
49
}
50
50
}
51
51
52
- impl de:: Deserialize for InputValue {
52
+ impl < ' de > de:: Deserialize < ' de > for InputValue {
53
53
fn deserialize < D > ( deserializer : D ) -> Result < InputValue , D :: Error >
54
- where D : de:: Deserializer ,
54
+ where D : de:: Deserializer < ' de > ,
55
55
{
56
56
struct InputValueVisitor ;
57
57
58
- impl de:: Visitor for InputValueVisitor {
58
+ impl < ' de > de:: Visitor < ' de > for InputValueVisitor {
59
59
type Value = InputValue ;
60
60
61
61
fn expecting ( & self , formatter : & mut fmt:: Formatter ) -> fmt:: Result {
@@ -98,23 +98,32 @@ impl de::Deserialize for InputValue {
98
98
Ok ( InputValue :: null ( ) )
99
99
}
100
100
101
- fn visit_seq < V > ( self , visitor : V ) -> Result < InputValue , V :: Error >
102
- where V : de:: SeqVisitor ,
101
+ fn visit_seq < V > ( self , mut visitor : V ) -> Result < InputValue , V :: Error >
102
+ where V : de:: SeqAccess < ' de > ,
103
103
{
104
- let values = try!( de:: impls:: VecVisitor :: new ( ) . visit_seq ( visitor) ) ;
104
+ let mut values = Vec :: new ( ) ;
105
+
106
+ while let Some ( el) = try!( visitor. next_element ( ) ) {
107
+ values. push ( el) ;
108
+ }
109
+
105
110
Ok ( InputValue :: list ( values) )
106
111
}
107
112
108
- fn visit_map < V > ( self , visitor : V ) -> Result < InputValue , V :: Error >
109
- where V : de:: MapVisitor ,
113
+ fn visit_map < V > ( self , mut visitor : V ) -> Result < InputValue , V :: Error >
114
+ where V : de:: MapAccess < ' de > ,
110
115
{
111
- let values = try!( de:: impls:: HashMapVisitor :: < String , InputValue , _ > :: new ( )
112
- . visit_map ( visitor) ) ;
116
+ let mut values: HashMap < String , InputValue > = HashMap :: new ( ) ;
117
+
118
+ while let Some ( ( key, value) ) = try!( visitor. next_entry ( ) ) {
119
+ values. insert ( key, value) ;
120
+ }
121
+
113
122
Ok ( InputValue :: object ( values) )
114
123
}
115
124
}
116
125
117
- deserializer. deserialize ( InputValueVisitor )
126
+ deserializer. deserialize_any ( InputValueVisitor )
118
127
}
119
128
}
120
129
0 commit comments