diff --git a/Cargo.lock b/Cargo.lock index 4f45de245..166bc5616 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -402,13 +402,22 @@ dependencies = [ [[package]] name = "convert_case" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "633458d4ef8c78b72454de2d54fd6ab2e60f9e02be22f3c6104cdc8a4e0fceb9" +checksum = "affbf0190ed2caf063e3def54ff444b449371d55c58e513a95ab98eca50adb49" dependencies = [ "unicode-segmentation", ] +[[package]] +name = "convert_case_extras" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589c70f0faf8aa9d17787557d5eae854d7755cac50f5c3d12c81d3d57661cebb" +dependencies = [ + "convert_case", +] + [[package]] name = "core-foundation" version = "0.10.1" @@ -3032,6 +3041,7 @@ name = "stackable-versioned-macros" version = "0.8.3" dependencies = [ "convert_case", + "convert_case_extras", "darling", "indoc", "insta", diff --git a/Cargo.toml b/Cargo.toml index 986e6ed50..9d4b24f88 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,7 +17,8 @@ axum = { version = "0.8.1", features = ["http2"] } clap = { version = "4.5.17", features = ["derive", "cargo", "env"] } const_format = "0.2.33" const-oid = { version = "0.9.6", features = ["db"] } -convert_case = "0.10.0" +convert_case = "0.11.0" +convert_case_extras = "0.2.0" darling = "0.23.0" delegate = "0.13.0" dockerfile-parser = "0.9.0" diff --git a/crates/stackable-versioned-macros/Cargo.toml b/crates/stackable-versioned-macros/Cargo.toml index 4e3b74afd..c7eb81339 100644 --- a/crates/stackable-versioned-macros/Cargo.toml +++ b/crates/stackable-versioned-macros/Cargo.toml @@ -31,6 +31,7 @@ proc-macro = true k8s-version = { path = "../k8s-version", features = ["darling"] } convert_case.workspace = true +convert_case_extras.workspace = true darling.workspace = true indoc.workspace = true itertools.workspace = true diff --git a/crates/stackable-versioned-macros/src/attrs/item/variant.rs b/crates/stackable-versioned-macros/src/attrs/item/variant.rs index 39a2681ba..087d113df 100644 --- a/crates/stackable-versioned-macros/src/attrs/item/variant.rs +++ b/crates/stackable-versioned-macros/src/attrs/item/variant.rs @@ -1,4 +1,5 @@ -use convert_case::{Case, Casing}; +use convert_case::Case; +use convert_case_extras::is_case; use darling::{Error, FromVariant, Result}; use syn::{Attribute, Ident}; @@ -60,7 +61,7 @@ impl VariantAttributes { // Validate names of renames for change in &self.common.changes { if let Some(from_name) = &change.from_name - && !from_name.is_case(Case::Pascal) + && !is_case(from_name.as_str(), Case::Pascal) { errors.push( Error::custom("renamed variant must use PascalCase")