@@ -46,14 +46,14 @@ pub(crate) mod serializers {
46
46
47
47
// AnyValue <-> KeyValue conversion
48
48
pub fn serialize_to_value < S > ( value : & Option < AnyValue > , serializer : S ) -> Result < S :: Ok , S :: Error >
49
- where
50
- S : Serializer ,
49
+ where
50
+ S : Serializer ,
51
51
{
52
52
// Serialize any_value::Value using its own implementation
53
53
// If value is None, it will be serialized as such
54
54
match value {
55
55
Some ( any_value) => match & any_value. value {
56
- Some ( Value :: IntValue ( i) ) => serialize_i64_to_string ( i, serializer) ,
56
+ // Some(Value::IntValue(i)) => serialize_i64_to_string(i, serializer),
57
57
Some ( value) => value. serialize ( serializer) ,
58
58
None => serializer. serialize_none ( ) ,
59
59
} ,
@@ -62,76 +62,77 @@ pub(crate) mod serializers {
62
62
}
63
63
64
64
pub fn deserialize_from_value < ' de , D > ( deserializer : D ) -> Result < Option < AnyValue > , D :: Error >
65
- where
66
- D : Deserializer < ' de > ,
67
- {
68
- struct ValueVisitor ;
65
+ where
66
+ D : Deserializer < ' de > ,
67
+ {
68
+ struct ValueVisitor ;
69
69
70
- impl < ' de > de:: Visitor < ' de > for ValueVisitor {
71
- type Value = AnyValue ;
70
+ impl < ' de > de:: Visitor < ' de > for ValueVisitor {
71
+ type Value = AnyValue ;
72
72
73
- fn expecting ( & self , formatter : & mut fmt:: Formatter ) -> fmt:: Result {
74
- formatter. write_str ( "a JSON object for AnyValue" )
75
- }
73
+ fn expecting ( & self , formatter : & mut fmt:: Formatter ) -> fmt:: Result {
74
+ formatter. write_str ( "a JSON object for AnyValue" )
75
+ }
76
76
77
- fn visit_map < V > ( self , mut map : V ) -> Result < AnyValue , V :: Error >
78
- where
79
- V : de:: MapAccess < ' de > ,
80
- {
81
- let mut value: Option < any_value:: Value > = None ;
82
-
83
- while let Some ( key) = map. next_key :: < String > ( ) ? {
84
- let key_str = key. as_str ( ) ;
85
- match key_str {
86
- "stringValue" => {
87
- let s = map. next_value ( ) ?;
88
- value = Some ( any_value:: Value :: StringValue ( s) ) ;
89
- } ,
90
- "boolValue" => {
91
- let b = map. next_value ( ) ?;
92
- value = Some ( any_value:: Value :: BoolValue ( b) ) ;
93
- } ,
94
- "intValue" => {
95
- let value_str = map. next_value :: < String > ( ) ?;
96
- let int_value = value_str. parse :: < i64 > ( )
97
- . map_err ( de :: Error :: custom ) ? ;
98
- value = Some ( any_value :: Value :: IntValue ( int_value ) ) ;
99
- } ,
100
- "doubleValue" => {
101
- let d = map . next_value ( ) ? ;
102
- value = Some ( any_value :: Value :: DoubleValue ( d ) ) ;
103
- } ,
104
- "arrayValue" => {
105
- let a = map . next_value ( ) ? ;
106
- value = Some ( any_value :: Value :: ArrayValue ( a ) ) ;
107
- } ,
108
- "kvlistValue" => {
109
- let kv = map . next_value ( ) ? ;
110
- value = Some ( any_value :: Value :: KvlistValue ( kv ) ) ;
111
- } ,
112
- "bytesValue" => {
113
- let bytes = map . next_value ( ) ? ;
114
- value = Some ( any_value :: Value :: BytesValue ( bytes ) ) ;
115
- } ,
116
- _ => {
117
- //skip unknown keys, and handle error later.
118
- continue
77
+ fn visit_map < V > ( self , mut map : V ) -> Result < AnyValue , V :: Error >
78
+ where
79
+ V : de:: MapAccess < ' de > ,
80
+ {
81
+ let mut value: Option < any_value:: Value > = None ;
82
+
83
+ while let Some ( key) = map. next_key :: < String > ( ) ? {
84
+ let key_str = key. as_str ( ) ;
85
+ match key_str {
86
+ "stringValue" => {
87
+ let s = map. next_value ( ) ?;
88
+ value = Some ( any_value:: Value :: StringValue ( s) ) ;
89
+ }
90
+ "boolValue" => {
91
+ let b = map. next_value ( ) ?;
92
+ value = Some ( any_value:: Value :: BoolValue ( b) ) ;
93
+ }
94
+ "intValue" => {
95
+ let value_str = map. next_value :: < String > ( ) ?;
96
+ let int_value = value_str. parse :: < i64 > ( ) . map_err ( de :: Error :: custom ) ? ;
97
+ value = Some ( any_value :: Value :: IntValue ( int_value ) ) ;
98
+ }
99
+ "doubleValue" => {
100
+ let d = map . next_value ( ) ? ;
101
+ value = Some ( any_value :: Value :: DoubleValue ( d ) ) ;
102
+ }
103
+ "arrayValue" => {
104
+ let a = map . next_value ( ) ? ;
105
+ value = Some ( any_value :: Value :: ArrayValue ( a ) ) ;
106
+ }
107
+ "kvlistValue" => {
108
+ let kv = map . next_value ( ) ? ;
109
+ value = Some ( any_value :: Value :: KvlistValue ( kv ) ) ;
110
+ }
111
+ "bytesValue" => {
112
+ let bytes = map . next_value ( ) ? ;
113
+ value = Some ( any_value :: Value :: BytesValue ( bytes ) ) ;
114
+ }
115
+ _ => {
116
+ //skip unknown keys, and handle error later.
117
+ continue ;
118
+ }
119
119
}
120
120
}
121
- }
122
121
123
- if let Some ( v) = value {
124
- Ok ( AnyValue { value : Some ( v) } )
125
- } else {
126
- Err ( de:: Error :: custom ( "Invalid data for AnyValue, no known keys found" ) )
122
+ if let Some ( v) = value {
123
+ Ok ( AnyValue { value : Some ( v) } )
124
+ } else {
125
+ Err ( de:: Error :: custom (
126
+ "Invalid data for AnyValue, no known keys found" ,
127
+ ) )
128
+ }
127
129
}
128
130
}
131
+
132
+ let value = deserializer. deserialize_map ( ValueVisitor ) ?;
133
+ Ok ( Some ( value) )
129
134
}
130
135
131
- let value = deserializer. deserialize_map ( ValueVisitor ) ?;
132
- Ok ( Some ( value) )
133
- }
134
-
135
136
pub fn serialize_u64_to_string < S > ( value : & u64 , serializer : S ) -> Result < S :: Ok , S :: Error >
136
137
where
137
138
S : Serializer ,
@@ -155,7 +156,7 @@ where
155
156
let s = value. to_string ( ) ;
156
157
serializer. serialize_str ( & s)
157
158
}
158
-
159
+
159
160
pub fn deserialize_string_to_i64 < ' de , D > ( deserializer : D ) -> Result < i64 , D :: Error >
160
161
where
161
162
D : Deserializer < ' de > ,
0 commit comments