This is an automated email from the ASF dual-hosted git repository.

kriskras99 pushed a commit to branch chore/strum
in repository https://gitbox.apache.org/repos/asf/avro-rs.git

commit f8eee675b2e1da441a378d93a5e0b806f113878d
Author: Kriskras99 <[email protected]>
AuthorDate: Mon Feb 23 08:23:14 2026 +0100

    chore: Replace `strum-macros` with `features = ["derive"` on `strum` and 
update to `0.28.0`
---
 Cargo.lock                      | 12 +++++++-----
 avro/Cargo.toml                 |  3 +--
 avro/src/codec.rs               |  2 +-
 avro/src/schema/mod.rs          | 25 ++++++++++++-------------
 avro/src/schema/record/field.rs |  2 +-
 avro/src/types.rs               |  2 +-
 6 files changed, 23 insertions(+), 23 deletions(-)

diff --git a/Cargo.lock b/Cargo.lock
index 852fc4e..6602b2b 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -90,7 +90,6 @@ dependencies = [
  "sha2",
  "snap",
  "strum",
- "strum_macros",
  "thiserror",
  "uuid",
  "zstd",
@@ -1306,15 +1305,18 @@ checksum = 
"7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
 
 [[package]]
 name = "strum"
-version = "0.27.2"
+version = "0.28.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf"
+checksum = "9628de9b8791db39ceda2b119bbe13134770b56c138ec1d3af810d045c04f9bd"
+dependencies = [
+ "strum_macros",
+]
 
 [[package]]
 name = "strum_macros"
-version = "0.27.2"
+version = "0.28.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7"
+checksum = "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664"
 dependencies = [
  "heck 0.5.0",
  "proc-macro2",
diff --git a/avro/Cargo.toml b/avro/Cargo.toml
index 71212e1..b1830ed 100644
--- a/avro/Cargo.toml
+++ b/avro/Cargo.toml
@@ -64,8 +64,7 @@ serde = { workspace = true }
 serde_bytes = { workspace = true }
 serde_json = { workspace = true }
 snap = { default-features = false, version = "1.1.0", optional = true }
-strum = { default-features = false, version = "0.27.2" }
-strum_macros = { default-features = false, version = "0.27.2" }
+strum = { default-features = false, version = "0.28.0", features = ["derive"] }
 thiserror = { default-features = false, version = "2.0.18" }
 uuid = { workspace = true }
 liblzma = { default-features = false, version = "0.4.6", optional = true }
diff --git a/avro/src/codec.rs b/avro/src/codec.rs
index 415cd66..6be9290 100644
--- a/avro/src/codec.rs
+++ b/avro/src/codec.rs
@@ -17,7 +17,7 @@
 
 //! Logic for all supported compression codecs in Avro.
 use crate::{AvroResult, Error, error::Details, types::Value};
-use strum_macros::{EnumIter, EnumString, IntoStaticStr};
+use strum::{EnumIter, EnumString, IntoStaticStr};
 
 /// Settings for the `Deflate` codec.
 #[derive(Clone, Copy, Eq, PartialEq, Debug)]
diff --git a/avro/src/schema/mod.rs b/avro/src/schema/mod.rs
index 50f7db8..b127fd0 100644
--- a/avro/src/schema/mod.rs
+++ b/avro/src/schema/mod.rs
@@ -24,6 +24,17 @@ mod record;
 mod resolve;
 mod union;
 
+pub(crate) use crate::schema::resolve::{
+    ResolvedOwnedSchema, resolve_names, resolve_names_with_schemata,
+};
+pub use crate::schema::{
+    name::{Alias, Aliases, Name, Names, NamesRef, Namespace},
+    record::{
+        RecordField, RecordFieldBuilder, RecordFieldOrder, RecordSchema, 
RecordSchemaBuilder,
+    },
+    resolve::ResolvedSchema,
+    union::UnionSchema,
+};
 use crate::{
     AvroResult,
     error::{Details, Error},
@@ -44,19 +55,7 @@ use std::{
     hash::Hash,
     io::Read,
 };
-use strum_macros::{Display, EnumDiscriminants};
-
-pub(crate) use crate::schema::resolve::{
-    ResolvedOwnedSchema, resolve_names, resolve_names_with_schemata,
-};
-pub use crate::schema::{
-    name::{Alias, Aliases, Name, Names, NamesRef, Namespace},
-    record::{
-        RecordField, RecordFieldBuilder, RecordFieldOrder, RecordSchema, 
RecordSchemaBuilder,
-    },
-    resolve::ResolvedSchema,
-    union::UnionSchema,
-};
+use strum::{Display, EnumDiscriminants};
 
 /// Represents documentation for complex Avro schemas.
 pub type Documentation = Option<String>;
diff --git a/avro/src/schema/record/field.rs b/avro/src/schema/record/field.rs
index bda8a56..70a0268 100644
--- a/avro/src/schema/record/field.rs
+++ b/avro/src/schema/record/field.rs
@@ -28,7 +28,7 @@ use serde::{Serialize, Serializer};
 use serde_json::{Map, Value};
 use std::collections::BTreeMap;
 use std::str::FromStr;
-use strum_macros::EnumString;
+use strum::EnumString;
 
 /// Represents a `field` in a `record` Avro schema.
 #[derive(bon::Builder, Clone, Debug, PartialEq)]
diff --git a/avro/src/types.rs b/avro/src/types.rs
index 5176260..393f484 100644
--- a/avro/src/types.rs
+++ b/avro/src/types.rs
@@ -50,7 +50,7 @@ fn max_prec_for_len(len: usize) -> Result<usize, Error> {
 ///
 /// More information about Avro values can be found in the [Avro
 /// 
Specification](https://avro.apache.org/docs/++version++/specification/#schema-declaration)
-#[derive(Clone, Debug, PartialEq, strum_macros::EnumDiscriminants)]
+#[derive(Clone, Debug, PartialEq, strum::EnumDiscriminants)]
 #[strum_discriminants(name(ValueKind))]
 pub enum Value {
     /// A `null` Avro value.

Reply via email to