@@ -679,55 +679,11 @@ impl<'de, 'a, R: ReadSlice<'de>, C: SerializerConfig> serde::Deserializer<'de> f
679679 visitor. visit_u128 ( u128:: from_be_bytes ( buf) )
680680 }
681681
682- fn deserialize_f32 < V > ( self , visitor : V ) -> Result < V :: Value , Self :: Error >
683- where V : Visitor < ' de >
684- {
685- // This special case allows us to decode some integer types as floats when safe, and
686- // asked for.
687- //
688- // This allows interoperability with msgpack-lite, which performs an optimization of
689- // storing rounded floats as integers.
690- let f = match self . take_or_read_marker ( ) ? {
691- Marker :: U8 => self . rd . read_data_u8 ( ) . map ( f32:: from) ,
692- Marker :: U16 => self . rd . read_data_u16 ( ) . map ( f32:: from) ,
693- Marker :: I8 => self . rd . read_data_i8 ( ) . map ( f32:: from) ,
694- Marker :: I16 => self . rd . read_data_i16 ( ) . map ( f32:: from) ,
695- Marker :: F32 => self . rd . read_data_f32 ( ) ,
696- marker => {
697- self . marker = Some ( marker) ;
698- return self . deserialize_any ( visitor) ;
699- }
700- } ?;
701- visitor. visit_f32 ( f)
702- }
703-
704- fn deserialize_f64 < V > ( self , visitor : V ) -> Result < V :: Value , Self :: Error >
705- where V : Visitor < ' de >
706- {
707- // This special case allows us to decode some integer types as floats when safe, and
708- // asked for. This is here to be consistent with 'f32'.
709- let f = match self . take_or_read_marker ( ) ? {
710- Marker :: U8 => self . rd . read_data_u8 ( ) . map ( f64:: from) ,
711- Marker :: U16 => self . rd . read_data_u16 ( ) . map ( f64:: from) ,
712- Marker :: U32 => self . rd . read_data_u32 ( ) . map ( f64:: from) ,
713- Marker :: I8 => self . rd . read_data_i8 ( ) . map ( f64:: from) ,
714- Marker :: I16 => self . rd . read_data_i16 ( ) . map ( f64:: from) ,
715- Marker :: I32 => self . rd . read_data_i32 ( ) . map ( f64:: from) ,
716- Marker :: F32 => self . rd . read_data_f32 ( ) . map ( f64:: from) ,
717- Marker :: F64 => self . rd . read_data_f64 ( ) ,
718- marker => {
719- self . marker = Some ( marker) ;
720- return self . deserialize_any ( visitor) ;
721- }
722- } ?;
723- visitor. visit_f64 ( f)
724- }
725-
726682 forward_to_deserialize_any ! {
727- bool u8 u16 u32 u64 i8 i16 i32 i64 char
728- str string bytes byte_buf unit seq map
729- struct identifier tuple tuple_struct
730- ignored_any
683+ bool u8 u16 u32 u64 i8 i16 i32 i64 f32
684+ f64 char str string bytes byte_buf unit
685+ seq map struct identifier tuple
686+ tuple_struct ignored_any
731687 }
732688}
733689
0 commit comments