This is an automated email from the ASF dual-hosted git repository.
mgrigorov pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/avro-rs.git
The following commit(s) were added to refs/heads/main by this push:
new d969805 Fixes #219: Use `serde` as a feature for bigdecimal decimal
(#221)
d969805 is described below
commit d9698057a74c9227151a45aee3ee71b01ae2dca6
Author: Martin Grigorov <[email protected]>
AuthorDate: Tue Jul 1 14:49:56 2025 +0300
Fixes #219: Use `serde` as a feature for bigdecimal decimal (#221)
See https://github.com/akubera/bigdecimal-rs/issues/151
Signed-off-by: Martin Tzvetanov Grigorov <[email protected]>
---
Cargo.lock | 1 -
avro/Cargo.toml | 2 +-
avro/tests/avro-rs-219.rs | 26 ++++++++++++++++++++++++++
3 files changed, 27 insertions(+), 2 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
index 6a44497..5e00791 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -150,7 +150,6 @@ dependencies = [
"num-integer",
"num-traits",
"serde",
- "serde_json",
]
[[package]]
diff --git a/avro/Cargo.toml b/avro/Cargo.toml
index 507aae3..5988a46 100644
--- a/avro/Cargo.toml
+++ b/avro/Cargo.toml
@@ -54,7 +54,7 @@ name = "single"
[dependencies]
apache-avro-derive = { default-features = false, version = "0.19.0", path =
"../avro_derive", optional = true }
-bigdecimal = { default-features = false, version = "0.4.8", features = ["std",
"serde-json"] }
+bigdecimal = { default-features = false, version = "0.4.8", features = ["std",
"serde"] }
bon = { default-features = false, version = "3.6.4" }
bzip2 = { version = "0.6.0", optional = true }
crc32fast = { default-features = false, version = "1.4.2", optional = true }
diff --git a/avro/tests/avro-rs-219.rs b/avro/tests/avro-rs-219.rs
new file mode 100644
index 0000000..3796fbb
--- /dev/null
+++ b/avro/tests/avro-rs-219.rs
@@ -0,0 +1,26 @@
+use serde::Deserialize;
+
+#[test]
+fn avro_rs_219_failing_deserialization_due_to_bigdecimal_dependency() {
+ #[derive(Deserialize, PartialEq, Debug)]
+ struct S3 {
+ f1: Option<f64>,
+
+ #[serde(flatten)]
+ inner: Inner,
+ }
+
+ #[derive(Deserialize, PartialEq, Debug)]
+ struct Inner {
+ f2: f64,
+ }
+
+ let test = r#"{
+ "f1": 0.3,
+ "f2": 3.76
+ }"#;
+
+ let result = serde_json::from_str::<S3>(test);
+ println!("result : {result:#?}");
+ result.unwrap();
+}