diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustServerCodegen.java index 0cacfd31c46..a0ef19a483a 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustServerCodegen.java @@ -211,6 +211,7 @@ public class RustServerCodegen extends DefaultCodegen implements CodegenConfig { typeMapping.put("array", "Vec"); typeMapping.put("map", "std::collections::HashMap"); typeMapping.put("object", "serde_json::Value"); + typeMapping.put("AnyType", "serde_json::Value"); importMapping = new HashMap(); diff --git a/pom.xml b/pom.xml index 802cea465a9..07808e990fa 100644 --- a/pom.xml +++ b/pom.xml @@ -1237,7 +1237,7 @@ samples/server/petstore/python-flask-python2 samples/server/petstore/php-slim samples/server/petstore/php-slim4 - + samples/server/petstore/rust-server samples/client/petstore/bash samples/client/petstore/c diff --git a/samples/server/petstore/rust-server/output/openapi-v3/docs/ObjectUntypedProps.md b/samples/server/petstore/rust-server/output/openapi-v3/docs/ObjectUntypedProps.md index e8af6d7c8f8..492045cab7c 100644 --- a/samples/server/petstore/rust-server/output/openapi-v3/docs/ObjectUntypedProps.md +++ b/samples/server/petstore/rust-server/output/openapi-v3/docs/ObjectUntypedProps.md @@ -3,10 +3,10 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**required_untyped** | [***AnyType**](.md) | | -**required_untyped_nullable** | [***AnyType**](.md) | | -**not_required_untyped** | [***AnyType**](.md) | | [optional] [default to None] -**not_required_untyped_nullable** | [***AnyType**](.md) | | [optional] [default to None] +**required_untyped** | [***serde_json::Value**](.md) | | +**required_untyped_nullable** | [***serde_json::Value**](.md) | | +**not_required_untyped** | [***serde_json::Value**](.md) | | [optional] [default to None] +**not_required_untyped_nullable** | [***serde_json::Value**](.md) | | [optional] [default to None] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/samples/server/petstore/rust-server/output/openapi-v3/src/models.rs b/samples/server/petstore/rust-server/output/openapi-v3/src/models.rs index 9e0c52b5259..884dab3b875 100644 --- a/samples/server/petstore/rust-server/output/openapi-v3/src/models.rs +++ b/samples/server/petstore/rust-server/output/openapi-v3/src/models.rs @@ -1443,23 +1443,23 @@ impl std::convert::TryFrom for header::IntoHeaderVal #[cfg_attr(feature = "conversion", derive(frunk::LabelledGeneric))] pub struct ObjectUntypedProps { #[serde(rename = "required_untyped")] - pub required_untyped: AnyType, + pub required_untyped: serde_json::Value, #[serde(rename = "required_untyped_nullable")] - pub required_untyped_nullable: swagger::Nullable, + pub required_untyped_nullable: swagger::Nullable, #[serde(rename = "not_required_untyped")] #[serde(skip_serializing_if="Option::is_none")] - pub not_required_untyped: Option, + pub not_required_untyped: Option, #[serde(rename = "not_required_untyped_nullable")] #[serde(skip_serializing_if="Option::is_none")] - pub not_required_untyped_nullable: Option, + pub not_required_untyped_nullable: Option, } impl ObjectUntypedProps { - pub fn new(required_untyped: AnyType, required_untyped_nullable: swagger::Nullable, ) -> ObjectUntypedProps { + pub fn new(required_untyped: serde_json::Value, required_untyped_nullable: swagger::Nullable, ) -> ObjectUntypedProps { ObjectUntypedProps { required_untyped: required_untyped, required_untyped_nullable: required_untyped_nullable, @@ -1497,10 +1497,10 @@ impl std::str::FromStr for ObjectUntypedProps { #[derive(Default)] // An intermediate representation of the struct to use for parsing. struct IntermediateRep { - pub required_untyped: Vec, - pub required_untyped_nullable: Vec, - pub not_required_untyped: Vec, - pub not_required_untyped_nullable: Vec, + pub required_untyped: Vec, + pub required_untyped_nullable: Vec, + pub not_required_untyped: Vec, + pub not_required_untyped_nullable: Vec, } let mut intermediate_rep = IntermediateRep::default(); @@ -1517,10 +1517,10 @@ impl std::str::FromStr for ObjectUntypedProps { if let Some(key) = key_result { match key { - "required_untyped" => intermediate_rep.required_untyped.push(AnyType::from_str(val).map_err(|x| format!("{}", x))?), + "required_untyped" => intermediate_rep.required_untyped.push(serde_json::Value::from_str(val).map_err(|x| format!("{}", x))?), "required_untyped_nullable" => return std::result::Result::Err("Parsing a nullable type in this style is not supported in ObjectUntypedProps".to_string()), - "not_required_untyped" => intermediate_rep.not_required_untyped.push(AnyType::from_str(val).map_err(|x| format!("{}", x))?), - "not_required_untyped_nullable" => intermediate_rep.not_required_untyped_nullable.push(AnyType::from_str(val).map_err(|x| format!("{}", x))?), + "not_required_untyped" => intermediate_rep.not_required_untyped.push(serde_json::Value::from_str(val).map_err(|x| format!("{}", x))?), + "not_required_untyped_nullable" => intermediate_rep.not_required_untyped_nullable.push(serde_json::Value::from_str(val).map_err(|x| format!("{}", x))?), _ => return std::result::Result::Err("Unexpected key while parsing ObjectUntypedProps".to_string()) } }