From dbb35c4e820b3bc4bb1416d53d4fbe45d9ffe319 Mon Sep 17 00:00:00 2001 From: pyrite Date: Tue, 27 May 2025 19:23:21 +0200 Subject: [PATCH] feat(torn-api): added optional strum feature --- Cargo.lock | 27 +++++++++++++++++++++++++-- torn-api-codegen/Cargo.toml | 2 +- torn-api-codegen/src/model/enum.rs | 1 + torn-api/Cargo.toml | 6 ++++-- 4 files changed, 31 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index cb40bb1..8687be0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2081,6 +2081,28 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" +[[package]] +name = "strum" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f64def088c51c9510a8579e3c5d67c65349dcf755e5479ad3d010aa6454e2c32" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c77a8c5abcaf0f9ce05d62342b7d298c346515365c36b673df4ebe3ced01fde8" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn", +] + [[package]] name = "subtle" version = "2.6.1" @@ -2272,7 +2294,7 @@ dependencies = [ [[package]] name = "torn-api" -version = "1.4.0" +version = "1.5.0" dependencies = [ "bon", "bytes", @@ -2285,6 +2307,7 @@ dependencies = [ "serde", "serde_json", "serde_repr", + "strum", "syn", "thiserror", "tokio", @@ -2293,7 +2316,7 @@ dependencies = [ [[package]] name = "torn-api-codegen" -version = "0.4.0" +version = "0.5.0" dependencies = [ "heck", "indexmap", diff --git a/torn-api-codegen/Cargo.toml b/torn-api-codegen/Cargo.toml index 80357c9..b8ee430 100644 --- a/torn-api-codegen/Cargo.toml +++ b/torn-api-codegen/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "torn-api-codegen" authors = ["Pyrit [2111649]"] -version = "0.4.0" +version = "0.5.0" edition = "2021" description = "Contains the v2 torn API model descriptions and codegen for the bindings" license-file = { workspace = true } diff --git a/torn-api-codegen/src/model/enum.rs b/torn-api-codegen/src/model/enum.rs index 23cd52d..aed832b 100644 --- a/torn-api-codegen/src/model/enum.rs +++ b/torn-api-codegen/src/model/enum.rs @@ -309,6 +309,7 @@ impl Enum { Some(quote! { #desc #[derive(Debug, Clone, PartialEq, #(#derives),*)] + #[cfg_attr(feature = "strum", derive(strum::EnumIs, strum::EnumTryAs))] #serde_attr pub enum #name { #(#variants),* diff --git a/torn-api/Cargo.toml b/torn-api/Cargo.toml index b2d031c..75f9dbb 100644 --- a/torn-api/Cargo.toml +++ b/torn-api/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "torn-api" -version = "1.4.0" +version = "1.5.0" edition = "2021" description = "Auto-generated bindings for the v2 torn api" license-file = { workspace = true } @@ -13,6 +13,7 @@ scopes = ["builder"] builder = ["requests", "dep:bon"] requests = ["models"] models = ["dep:serde_repr"] +strum = ["dep:strum"] [dependencies] serde = { workspace = true, features = ["derive"] } @@ -32,12 +33,13 @@ futures = { version = "0.3", default-features = false, features = [ "async-await", ] } chrono = { version = "0.4.41", features = ["serde"] } +strum = { version = "0.27.1", features = ["derive"], optional = true } [dev-dependencies] tokio = { version = "1", features = ["full"] } [build-dependencies] -torn-api-codegen = { path = "../torn-api-codegen", version = "0.4.0" } +torn-api-codegen = { path = "../torn-api-codegen", version = "0.5.0" } syn = { workspace = true, features = ["parsing"] } proc-macro2 = { workspace = true } prettyplease = "0.2"