@@ -15,7 +15,7 @@ use crate::{
1515} ;
1616
1717impl < ' de > Deserialize < ' de > for Val {
18- fn deserialize < D > ( deserializer : D ) -> Result < Val , D :: Error >
18+ fn deserialize < D > ( deserializer : D ) -> Result < Self , D :: Error >
1919 where
2020 D : serde:: Deserializer < ' de > ,
2121 {
@@ -155,10 +155,10 @@ impl Serialize for Val {
155155 S : serde:: Serializer ,
156156 {
157157 match self {
158- Val :: Bool ( v) => serializer. serialize_bool ( * v) ,
159- Val :: Null => serializer. serialize_none ( ) ,
160- Val :: Str ( s) => serializer. serialize_str ( & s. clone ( ) . into_flat ( ) ) ,
161- Val :: Num ( n) => {
158+ Self :: Bool ( v) => serializer. serialize_bool ( * v) ,
159+ Self :: Null => serializer. serialize_none ( ) ,
160+ Self :: Str ( s) => serializer. serialize_str ( & s. clone ( ) . into_flat ( ) ) ,
161+ Self :: Num ( n) => {
162162 if n. fract ( ) == 0.0 {
163163 let n = * n as i64 ;
164164 serializer. serialize_i64 ( n)
@@ -167,8 +167,8 @@ impl Serialize for Val {
167167 }
168168 }
169169 #[ cfg( feature = "exp-bigint" ) ]
170- Val :: BigInt ( b) => b. serialize ( serializer) ,
171- Val :: Arr ( arr) => {
170+ Self :: BigInt ( b) => b. serialize ( serializer) ,
171+ Self :: Arr ( arr) => {
172172 let mut seq = serializer. serialize_seq ( Some ( arr. len ( ) ) ) ?;
173173 for ( i, element) in arr. iter ( ) . enumerate ( ) {
174174 let mut serde_error = None ;
@@ -190,7 +190,7 @@ impl Serialize for Val {
190190 }
191191 seq. end ( )
192192 }
193- Val :: Obj ( obj) => {
193+ Self :: Obj ( obj) => {
194194 let mut map = serializer. serialize_map ( Some ( obj. len ( ) ) ) ?;
195195 for ( field, value) in obj. iter (
196196 #[ cfg( feature = "exp-preserve-order" ) ]
@@ -215,7 +215,7 @@ impl Serialize for Val {
215215 }
216216 map. end ( )
217217 }
218- Val :: Func ( _) => Err ( S :: Error :: custom ( "tried to manifest function" ) ) ,
218+ Self :: Func ( _) => Err ( S :: Error :: custom ( "tried to manifest function" ) ) ,
219219 }
220220 }
221221}
@@ -248,9 +248,9 @@ impl SerializeSeq for IntoVecValSerializer {
248248 type Ok = Val ;
249249 type Error = JrError ;
250250
251- fn serialize_element < T : ? Sized > ( & mut self , value : & T ) -> Result < ( ) >
251+ fn serialize_element < T > ( & mut self , value : & T ) -> Result < ( ) >
252252 where
253- T : Serialize ,
253+ T : ? Sized + Serialize ,
254254 {
255255 let value = value. serialize ( IntoValSerializer ) ?;
256256 self . data . push ( value) ;
@@ -272,9 +272,9 @@ impl SerializeTuple for IntoVecValSerializer {
272272 type Ok = Val ;
273273 type Error = JrError ;
274274
275- fn serialize_element < T : ? Sized > ( & mut self , value : & T ) -> Result < ( ) >
275+ fn serialize_element < T > ( & mut self , value : & T ) -> Result < ( ) >
276276 where
277- T : Serialize ,
277+ T : ? Sized + Serialize ,
278278 {
279279 SerializeSeq :: serialize_element ( self , value)
280280 }
@@ -287,9 +287,9 @@ impl SerializeTupleVariant for IntoVecValSerializer {
287287 type Ok = Val ;
288288 type Error = JrError ;
289289
290- fn serialize_field < T : ? Sized > ( & mut self , value : & T ) -> Result < ( ) >
290+ fn serialize_field < T > ( & mut self , value : & T ) -> Result < ( ) >
291291 where
292- T : Serialize ,
292+ T : ? Sized + Serialize ,
293293 {
294294 SerializeSeq :: serialize_element ( self , value)
295295 }
@@ -302,9 +302,9 @@ impl SerializeTupleStruct for IntoVecValSerializer {
302302 type Ok = Val ;
303303 type Error = JrError ;
304304
305- fn serialize_field < T : ? Sized > ( & mut self , value : & T ) -> Result < ( ) >
305+ fn serialize_field < T > ( & mut self , value : & T ) -> Result < ( ) >
306306 where
307- T : Serialize ,
307+ T : ? Sized + Serialize ,
308308 {
309309 SerializeSeq :: serialize_element ( self , value)
310310 }
@@ -607,7 +607,7 @@ impl Serializer for IntoValSerializer {
607607}
608608
609609impl Val {
610- pub fn from_serde ( v : impl Serialize ) -> Result < Val , JrError > {
610+ pub fn from_serde ( v : impl Serialize ) -> Result < Self , JrError > {
611611 v. serialize ( IntoValSerializer )
612612 }
613613}
0 commit comments