Skip to content

Commit 04d4205

Browse files
committed
fix Decimal
1 parent 357350e commit 04d4205

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
members = ["rbdc-pool-fast","rbdc-sqlite","rbdc-mysql","rbdc-pg","rbdc-mssql", "example"]
33
[package]
44
name = "rbdc"
5-
version = "4.5.47"
5+
version = "4.5.48"
66
edition = "2021"
77
description = "The Rust SQL Toolkit and ORM Library. An async, pure Rust SQL crate featuring compile-time Dynamic SQL"
88
readme = "Readme.md"

src/types/decimal.rs

+11-4
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,15 @@ impl<'de> serde::Deserialize<'de> for Decimal {
123123
D: Deserializer<'de>,
124124
{
125125
use serde::de::Error;
126-
let v=Value::deserialize(deserializer)?.to_string();
127-
Decimal::from_str(&v).map_err(|e| Error::custom(e.to_string()))
126+
let v = Value::deserialize(deserializer)?;
127+
let string = match v {
128+
Value::String(v)=>{
129+
v
130+
}
131+
Value::Ext(_, inner_value) => inner_value.to_string(),
132+
_ => v.to_string(),
133+
};
134+
Decimal::from_str(&string).map_err(|e| Error::custom(e.to_string()))
128135
}
129136
}
130137

@@ -457,9 +464,9 @@ mod test {
457464
}
458465

459466
#[test]
460-
fn test_de(){
467+
fn test_de() {
461468
let v = serde_json::to_value(1).unwrap();
462-
let s:Decimal = serde_json::from_value(v).unwrap();
469+
let s: Decimal = serde_json::from_value(v).unwrap();
463470
assert_eq!(s, Decimal::from(1));
464471
}
465472
}

0 commit comments

Comments
 (0)