1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
use crate::decode::{Decode, DecodeError}; use crate::encode::Encode; use crate::mysql::protocol::Type; use crate::mysql::types::MySqlTypeMetadata; use crate::mysql::MySql; use crate::types::HasSqlType; impl HasSqlType<f32> for MySql { #[inline] fn metadata() -> MySqlTypeMetadata { MySqlTypeMetadata::new(Type::FLOAT) } } impl Encode<MySql> for f32 { fn encode(&self, buf: &mut Vec<u8>) { <i32 as Encode<MySql>>::encode(&(self.to_bits() as i32), buf); } } impl Decode<MySql> for f32 { fn decode(buf: &[u8]) -> Result<Self, DecodeError> { Ok(f32::from_bits(<i32 as Decode<MySql>>::decode(buf)? as u32)) } } impl HasSqlType<f64> for MySql { #[inline] fn metadata() -> MySqlTypeMetadata { MySqlTypeMetadata::new(Type::DOUBLE) } } impl Encode<MySql> for f64 { fn encode(&self, buf: &mut Vec<u8>) { <i64 as Encode<MySql>>::encode(&(self.to_bits() as i64), buf); } } impl Decode<MySql> for f64 { fn decode(buf: &[u8]) -> Result<Self, DecodeError> { Ok(f64::from_bits(<i64 as Decode<MySql>>::decode(buf)? as u64)) } }