feat(torn-api): added optional strum feature

This commit is contained in:
Pyrite 2025-05-26 16:53:51 +02:00
parent f0bf96c170
commit dea314681c
Signed by: pyrite
GPG key ID: 7F1BA9170CD35D15
4 changed files with 31 additions and 5 deletions

27
Cargo.lock generated
View file

@ -2081,6 +2081,28 @@ version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" 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]] [[package]]
name = "subtle" name = "subtle"
version = "2.6.1" version = "2.6.1"
@ -2272,7 +2294,7 @@ dependencies = [
[[package]] [[package]]
name = "torn-api" name = "torn-api"
version = "1.4.0" version = "1.5.0"
dependencies = [ dependencies = [
"bon", "bon",
"bytes", "bytes",
@ -2285,6 +2307,7 @@ dependencies = [
"serde", "serde",
"serde_json", "serde_json",
"serde_repr", "serde_repr",
"strum",
"syn", "syn",
"thiserror", "thiserror",
"tokio", "tokio",
@ -2293,7 +2316,7 @@ dependencies = [
[[package]] [[package]]
name = "torn-api-codegen" name = "torn-api-codegen"
version = "0.4.0" version = "0.5.0"
dependencies = [ dependencies = [
"heck", "heck",
"indexmap", "indexmap",

View file

@ -1,7 +1,7 @@
[package] [package]
name = "torn-api-codegen" name = "torn-api-codegen"
authors = ["Pyrit [2111649]"] authors = ["Pyrit [2111649]"]
version = "0.4.0" version = "0.5.0"
edition = "2021" edition = "2021"
description = "Contains the v2 torn API model descriptions and codegen for the bindings" description = "Contains the v2 torn API model descriptions and codegen for the bindings"
license-file = { workspace = true } license-file = { workspace = true }

View file

@ -309,6 +309,7 @@ impl Enum {
Some(quote! { Some(quote! {
#desc #desc
#[derive(Debug, Clone, PartialEq, #(#derives),*)] #[derive(Debug, Clone, PartialEq, #(#derives),*)]
#[cfg_attr(feature = "strum", derive(strum::EnumIs, strum::EnumTryAs))]
#serde_attr #serde_attr
pub enum #name { pub enum #name {
#(#variants),* #(#variants),*

View file

@ -1,6 +1,6 @@
[package] [package]
name = "torn-api" name = "torn-api"
version = "1.4.0" version = "1.5.0"
edition = "2021" edition = "2021"
description = "Auto-generated bindings for the v2 torn api" description = "Auto-generated bindings for the v2 torn api"
license-file = { workspace = true } license-file = { workspace = true }
@ -13,6 +13,7 @@ scopes = ["builder"]
builder = ["requests", "dep:bon"] builder = ["requests", "dep:bon"]
requests = ["models"] requests = ["models"]
models = ["dep:serde_repr"] models = ["dep:serde_repr"]
strum = ["dep:strum"]
[dependencies] [dependencies]
serde = { workspace = true, features = ["derive"] } serde = { workspace = true, features = ["derive"] }
@ -32,12 +33,13 @@ futures = { version = "0.3", default-features = false, features = [
"async-await", "async-await",
] } ] }
chrono = { version = "0.4.41", features = ["serde"] } chrono = { version = "0.4.41", features = ["serde"] }
strum = { version = "0.27.1", features = ["derive"], optional = true }
[dev-dependencies] [dev-dependencies]
tokio = { version = "1", features = ["full"] } tokio = { version = "1", features = ["full"] }
[build-dependencies] [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"] } syn = { workspace = true, features = ["parsing"] }
proc-macro2 = { workspace = true } proc-macro2 = { workspace = true }
prettyplease = "0.2" prettyplease = "0.2"