AVRO-3840: [Rust] Depend on serde_derive explicitly

Suggested-at: https://github.com/serde-rs/serde/pull/2590#pullrequestreview-1586132361

Signed-off-by: Martin Tzvetanov Grigorov <mgrigorov@apache.org>
diff --git a/lang/rust/Cargo.lock b/lang/rust/Cargo.lock
index fbb4fb9..1d24f8d 100644
--- a/lang/rust/Cargo.lock
+++ b/lang/rust/Cargo.lock
@@ -83,6 +83,7 @@
  "rand",
  "regex-lite",
  "serde",
+ "serde_derive",
  "serde_json",
  "sha2",
  "snap",
@@ -105,6 +106,7 @@
  "proptest",
  "quote",
  "serde",
+ "serde_derive",
  "serde_json",
  "syn",
 ]
@@ -536,6 +538,7 @@
  "apache-avro",
  "console_error_panic_hook",
  "serde",
+ "serde_derive",
  "wasm-bindgen",
  "wasm-bindgen-test",
 ]
@@ -955,18 +958,18 @@
 
 [[package]]
 name = "serde"
-version = "1.0.183"
+version = "1.0.185"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c"
+checksum = "be9b6f69f1dfd54c3b568ffa45c310d6973a5e5148fd40cf515acaf38cf5bc31"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.183"
+version = "1.0.185"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816"
+checksum = "dc59dfdcbad1437773485e0367fea4b090a2e0a16d9ffc46af47764536a298ec"
 dependencies = [
  "proc-macro2",
  "quote",
diff --git a/lang/rust/avro/Cargo.toml b/lang/rust/avro/Cargo.toml
index 872753d..59b6398 100644
--- a/lang/rust/avro/Cargo.toml
+++ b/lang/rust/avro/Cargo.toml
@@ -63,7 +63,8 @@
 log = { default-features = false, version = "0.4.20" }
 num-bigint = { default-features = false, version = "0.4.3" }
 regex-lite = { default-features = false, version = "0.1.0", features = ["std", "string"] }
-serde = { default-features = false, version = "1.0.183", features = ["derive"] }
+serde = { default-features = false, version = "1.0.185" }
+serde_derive = { default-features = false, version = "1.0.185" }
 serde_json = { default-features = false, version = "1.0.105", features = ["std"] }
 snap = { default-features = false, version = "1.1.0", optional = true }
 strum = { default-features = false, version = "0.25.0" }
diff --git a/lang/rust/avro/src/de.rs b/lang/rust/avro/src/de.rs
index 610b15a..a0f65af 100644
--- a/lang/rust/avro/src/de.rs
+++ b/lang/rust/avro/src/de.rs
@@ -651,7 +651,7 @@
 #[cfg(test)]
 mod tests {
     use pretty_assertions::assert_eq;
-    use serde::Serialize;
+    use serde_derive::Serialize;
     use std::sync::atomic::Ordering;
     use uuid::Uuid;
 
diff --git a/lang/rust/avro/src/reader.rs b/lang/rust/avro/src/reader.rs
index ae0b32d..322b05f 100644
--- a/lang/rust/avro/src/reader.rs
+++ b/lang/rust/avro/src/reader.rs
@@ -531,7 +531,7 @@
     use crate::{encode::encode, from_value, types::Record, Reader};
     use apache_avro_test_helper::TestResult;
     use pretty_assertions::assert_eq;
-    use serde::Deserialize;
+    use serde_derive::Deserialize;
     use std::io::Cursor;
 
     const SCHEMA: &str = r#"
diff --git a/lang/rust/avro/src/schema.rs b/lang/rust/avro/src/schema.rs
index 2eb7ba0..60e20d9 100644
--- a/lang/rust/avro/src/schema.rs
+++ b/lang/rust/avro/src/schema.rs
@@ -2208,6 +2208,7 @@
     use super::*;
     use apache_avro_test_helper::TestResult;
     use pretty_assertions::assert_eq;
+    use serde_derive::{Deserialize, Serialize};
     use serde_json::json;
 
     #[test]
@@ -4659,9 +4660,7 @@
         } 
         "#;
 
-        #[derive(
-            Debug, PartialEq, Eq, Hash, PartialOrd, Ord, Clone, serde::Deserialize, serde::Serialize,
-        )]
+        #[derive(Debug, PartialEq, Eq, Hash, PartialOrd, Ord, Clone, Deserialize, Serialize)]
         pub enum Bar {
             #[serde(rename = "bar0")]
             Bar0,
@@ -4669,7 +4668,7 @@
             Bar1,
         }
 
-        #[derive(Debug, PartialEq, Eq, Clone, serde::Deserialize, serde::Serialize)]
+        #[derive(Debug, PartialEq, Eq, Clone, Deserialize, Serialize)]
         pub struct Foo {
             #[serde(rename = "barInit")]
             pub bar_init: Bar,
@@ -4697,9 +4696,7 @@
 
     #[test]
     fn avro_3755_deserialize() -> TestResult {
-        #[derive(
-            Debug, PartialEq, Eq, Hash, PartialOrd, Ord, Clone, serde::Deserialize, serde::Serialize,
-        )]
+        #[derive(Debug, PartialEq, Eq, Hash, PartialOrd, Ord, Clone, Deserialize, Serialize)]
         pub enum Bar {
             #[serde(rename = "bar0")]
             Bar0,
@@ -4709,7 +4706,7 @@
             Bar2,
         }
 
-        #[derive(Debug, PartialEq, Eq, Clone, serde::Deserialize, serde::Serialize)]
+        #[derive(Debug, PartialEq, Eq, Clone, Deserialize, Serialize)]
         pub struct Foo {
             #[serde(rename = "barInit")]
             pub bar_init: Bar,
diff --git a/lang/rust/avro/src/ser.rs b/lang/rust/avro/src/ser.rs
index f79e058..31af0dc 100644
--- a/lang/rust/avro/src/ser.rs
+++ b/lang/rust/avro/src/ser.rs
@@ -491,7 +491,7 @@
     use super::*;
     use apache_avro_test_helper::TestResult;
     use pretty_assertions::assert_eq;
-    use serde::{Deserialize, Serialize};
+    use serde_derive::{Deserialize, Serialize};
     use std::sync::atomic::Ordering;
 
     #[derive(Debug, Deserialize, Serialize, Clone)]
diff --git a/lang/rust/avro/src/writer.rs b/lang/rust/avro/src/writer.rs
index 83e8634..799f59e 100644
--- a/lang/rust/avro/src/writer.rs
+++ b/lang/rust/avro/src/writer.rs
@@ -637,7 +637,7 @@
         util::zig_i64,
     };
     use pretty_assertions::assert_eq;
-    use serde::{Deserialize, Serialize};
+    use serde_derive::{Deserialize, Serialize};
 
     use apache_avro_test_helper::TestResult;
 
diff --git a/lang/rust/avro/tests/schema.rs b/lang/rust/avro/tests/schema.rs
index 2233058..38cfae9 100644
--- a/lang/rust/avro/tests/schema.rs
+++ b/lang/rust/avro/tests/schema.rs
@@ -1451,7 +1451,7 @@
     }"#;
     let schema = Schema::parse_str(schema_str)?;
 
-    use serde::{Deserialize, Serialize};
+    use serde_derive::{Deserialize, Serialize};
 
     #[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
     pub struct MyRecord {
@@ -1478,7 +1478,7 @@
 fn test_avro_3785_deserialize_namespace_with_nullable_type_containing_reference_type() -> TestResult
 {
     use apache_avro::{from_avro_datum, to_avro_datum, types::Value};
-    use serde::{Deserialize, Serialize};
+    use serde_derive::{Deserialize, Serialize};
 
     #[derive(Debug, PartialEq, Eq, Clone, Deserialize, Serialize)]
     pub struct BarUseParent {
diff --git a/lang/rust/avro_derive/Cargo.toml b/lang/rust/avro_derive/Cargo.toml
index 7065927..7cf82bb 100644
--- a/lang/rust/avro_derive/Cargo.toml
+++ b/lang/rust/avro_derive/Cargo.toml
@@ -42,4 +42,5 @@
 [dev-dependencies]
 apache-avro = { default-features = false, path = "../avro", features = ["derive"] }
 proptest = { default-features = false, version = "1.2.0", features = ["std"] }
-serde = { default-features = false, version = "1.0.183", features = ["derive"] }
+serde = { default-features = false, version = "1.0.185" }
+serde_derive = { default-features = false, version = "1.0.185" }
diff --git a/lang/rust/fuzz/fuzz_targets/roundtrip.rs b/lang/rust/fuzz/fuzz_targets/roundtrip.rs
index 14bc59c..d45fc6d 100644
--- a/lang/rust/fuzz/fuzz_targets/roundtrip.rs
+++ b/lang/rust/fuzz/fuzz_targets/roundtrip.rs
@@ -18,7 +18,7 @@
 #![no_main]
 use libfuzzer_sys::fuzz_target;
 
-use serde::{Deserialize, Serialize};
+use serde_derive::{Deserialize, Serialize};
 
 #[derive(Debug, Serialize, Deserialize, PartialEq)]
 enum PlainEnum {
diff --git a/lang/rust/wasm-demo/Cargo.toml b/lang/rust/wasm-demo/Cargo.toml
index 62ac5ee..bce45c1 100644
--- a/lang/rust/wasm-demo/Cargo.toml
+++ b/lang/rust/wasm-demo/Cargo.toml
@@ -36,7 +36,8 @@
 
 [dependencies]
 apache-avro = { path = "../avro" }
-serde = { default-features = false, version = "1.0.183", features = ["derive"] }
+serde = { default-features = false, version = "1.0.185" }
+serde_derive = { default-features = false, version = "1.0.185" }
 wasm-bindgen = "0.2.87"
 
 [dev-dependencies]
diff --git a/lang/rust/wasm-demo/tests/demos.rs b/lang/rust/wasm-demo/tests/demos.rs
index 89be21f..5fff4f1 100644
--- a/lang/rust/wasm-demo/tests/demos.rs
+++ b/lang/rust/wasm-demo/tests/demos.rs
@@ -23,7 +23,7 @@
 use wasm_bindgen_test::*;
 
 use apache_avro::{from_value, to_value, types::Record, Codec, Reader, Schema, Writer};
-use serde::{Deserialize, Serialize};
+use serde_derive::{Deserialize, Serialize};
 
 wasm_bindgen_test_configure!(run_in_browser);