rbdc_mysql/types/
decimal.rs

1use crate::io::MySqlBufMutExt;
2use crate::types::{Decode, Encode};
3use crate::value::MySqlValue;
4use rbdc::decimal::Decimal;
5use rbdc::Error;
6use std::str::FromStr;
7
8impl Encode for Decimal {
9    fn encode(self, buf: &mut Vec<u8>) -> Result<usize, Error> {
10        let bytes = self.0.to_string().into_bytes();
11        let len = bytes.len();
12        buf.put_bytes_lenenc(bytes);
13        Ok(len)
14    }
15}
16
17impl Decode for Decimal {
18    fn decode(value: MySqlValue) -> Result<Self, Error> {
19        Decimal::from_str(value.as_str().unwrap_or("0"))
20    }
21}