From ac45e3ddab74a4bf0df5f66861c4c52fbb586544 Mon Sep 17 00:00:00 2001 From: William Cheng Date: Mon, 4 Dec 2023 10:53:11 +0800 Subject: [PATCH] add enum name mapping feature to the rust generators (#17290) --- bin/configs/rust-reqwest-petstore.yaml | 2 ++ .../openapitools/codegen/languages/AbstractRustCodegen.java | 5 ++++- .../petstore/rust/reqwest/petstore/src/models/order.rs | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/bin/configs/rust-reqwest-petstore.yaml b/bin/configs/rust-reqwest-petstore.yaml index e107582b217..12a20cdce46 100644 --- a/bin/configs/rust-reqwest-petstore.yaml +++ b/bin/configs/rust-reqwest-petstore.yaml @@ -6,3 +6,5 @@ templateDir: modules/openapi-generator/src/main/resources/rust additionalProperties: supportAsync: false packageName: petstore-reqwest +enumNameMappings: + delivered: shipped diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractRustCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractRustCodegen.java index df0c7df1dcc..107cf5dbdba 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractRustCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractRustCodegen.java @@ -285,9 +285,12 @@ public abstract class AbstractRustCodegen extends DefaultCodegen implements Code } //// Enum naming //// - @Override public String toEnumVarName(String name, String datatype) { + if (enumNameMapping.containsKey(name)) { + return enumNameMapping.get(name); + } + // Empty strings need to be mapped to "Empty" // https://github.com/OpenAPITools/openapi-generator/issues/13453 if (Strings.isNullOrEmpty(name)) { diff --git a/samples/client/petstore/rust/reqwest/petstore/src/models/order.rs b/samples/client/petstore/rust/reqwest/petstore/src/models/order.rs index 3c7d0059100..d3fe7e2a955 100644 --- a/samples/client/petstore/rust/reqwest/petstore/src/models/order.rs +++ b/samples/client/petstore/rust/reqwest/petstore/src/models/order.rs @@ -51,7 +51,7 @@ pub enum Status { #[serde(rename = "approved")] Approved, #[serde(rename = "delivered")] - Delivered, + shipped, } impl Default for Status {