diff --git a/modules/openapi-generator/src/main/resources/rust/reqwest/api.mustache b/modules/openapi-generator/src/main/resources/rust/reqwest/api.mustache index 73ca49381be..316579cc62f 100644 --- a/modules/openapi-generator/src/main/resources/rust/reqwest/api.mustache +++ b/modules/openapi-generator/src/main/resources/rust/reqwest/api.mustache @@ -50,10 +50,24 @@ pub struct {{{operationIdCamelCase}}}Params { #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum {{{operationIdCamelCase}}}Errors { - // TODO Generate an enum case for each error described in schema. + {{#responses}} + {{#is3xx}} + Status{{code}}({{#isEnum}}{{{enumName}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}), + {{/is3xx}} + {{#is4xx}} + Status{{code}}({{#isEnum}}{{{enumName}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}), + {{/is4xx}} + {{#is5xx}} + Status{{code}}({{#isEnum}}{{{enumName}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}), + {{/is5xx}} + {{#isDefault}} + DefaultResponse({{#isEnum}}{{{enumName}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}), + {{/isDefault}} + {{/responses}} UnknownList(Vec), UnknownValue(serde_json::Value), } + {{/operation}} {{/operations}} diff --git a/samples/client/petstore/rust/reqwest/fileResponseTest/src/apis/default_api.rs b/samples/client/petstore/rust/reqwest/fileResponseTest/src/apis/default_api.rs index 2550a1cd9ed..75c0481c49a 100644 --- a/samples/client/petstore/rust/reqwest/fileResponseTest/src/apis/default_api.rs +++ b/samples/client/petstore/rust/reqwest/fileResponseTest/src/apis/default_api.rs @@ -34,11 +34,12 @@ impl DefaultApiClient { #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum FileresponsetestErrors { - // TODO Generate an enum case for each error described in schema. + DefaultResponse(std::path::PathBuf), UnknownList(Vec), UnknownValue(serde_json::Value), } + pub trait DefaultApi { fn fileresponsetest(&self, ) -> Result>; } diff --git a/samples/client/petstore/rust/reqwest/petstore-async/src/apis/pet_api.rs b/samples/client/petstore/rust/reqwest/petstore-async/src/apis/pet_api.rs index c6c30a2cf5d..077d549f50f 100644 --- a/samples/client/petstore/rust/reqwest/petstore-async/src/apis/pet_api.rs +++ b/samples/client/petstore/rust/reqwest/petstore-async/src/apis/pet_api.rs @@ -22,67 +22,81 @@ use super::{Error, configuration}; #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum AddPetErrors { - // TODO Generate an enum case for each error described in schema. + Status405(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `delete_pet` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum DeletePetErrors { - // TODO Generate an enum case for each error described in schema. + Status400(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `find_pets_by_status` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum FindPetsByStatusErrors { - // TODO Generate an enum case for each error described in schema. + DefaultResponse(Vec), + Status400(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `find_pets_by_tags` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum FindPetsByTagsErrors { - // TODO Generate an enum case for each error described in schema. + DefaultResponse(Vec), + Status400(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `get_pet_by_id` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum GetPetByIdErrors { - // TODO Generate an enum case for each error described in schema. + DefaultResponse(crate::models::Pet), + Status400(), + Status404(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `update_pet` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum UpdatePetErrors { - // TODO Generate an enum case for each error described in schema. + Status400(), + Status404(), + Status405(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `update_pet_with_form` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum UpdatePetWithFormErrors { - // TODO Generate an enum case for each error described in schema. + Status405(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `upload_file` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum UploadFileErrors { - // TODO Generate an enum case for each error described in schema. + DefaultResponse(crate::models::ApiResponse), UnknownList(Vec), UnknownValue(serde_json::Value), } + pub async fn add_pet(configuration: &configuration::Configuration, body: crate::models::Pet) -> Result<(), Error> { let client = &configuration.client; diff --git a/samples/client/petstore/rust/reqwest/petstore-async/src/apis/store_api.rs b/samples/client/petstore/rust/reqwest/petstore-async/src/apis/store_api.rs index 7f8a2ecd30a..8727904404a 100644 --- a/samples/client/petstore/rust/reqwest/petstore-async/src/apis/store_api.rs +++ b/samples/client/petstore/rust/reqwest/petstore-async/src/apis/store_api.rs @@ -22,35 +22,43 @@ use super::{Error, configuration}; #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum DeleteOrderErrors { - // TODO Generate an enum case for each error described in schema. + Status400(), + Status404(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `get_inventory` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum GetInventoryErrors { - // TODO Generate an enum case for each error described in schema. + DefaultResponse(::std::collections::HashMap), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `get_order_by_id` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum GetOrderByIdErrors { - // TODO Generate an enum case for each error described in schema. + DefaultResponse(crate::models::Order), + Status400(), + Status404(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `place_order` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum PlaceOrderErrors { - // TODO Generate an enum case for each error described in schema. + DefaultResponse(crate::models::Order), + Status400(), UnknownList(Vec), UnknownValue(serde_json::Value), } + pub async fn delete_order(configuration: &configuration::Configuration, order_id: &str) -> Result<(), Error> { let client = &configuration.client; diff --git a/samples/client/petstore/rust/reqwest/petstore-async/src/apis/user_api.rs b/samples/client/petstore/rust/reqwest/petstore-async/src/apis/user_api.rs index a5ed7d5f304..63a4ae419c0 100644 --- a/samples/client/petstore/rust/reqwest/petstore-async/src/apis/user_api.rs +++ b/samples/client/petstore/rust/reqwest/petstore-async/src/apis/user_api.rs @@ -22,67 +22,80 @@ use super::{Error, configuration}; #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum CreateUserErrors { - // TODO Generate an enum case for each error described in schema. + DefaultResponse(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `create_users_with_array_input` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum CreateUsersWithArrayInputErrors { - // TODO Generate an enum case for each error described in schema. + DefaultResponse(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `create_users_with_list_input` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum CreateUsersWithListInputErrors { - // TODO Generate an enum case for each error described in schema. + DefaultResponse(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `delete_user` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum DeleteUserErrors { - // TODO Generate an enum case for each error described in schema. + Status400(), + Status404(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `get_user_by_name` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum GetUserByNameErrors { - // TODO Generate an enum case for each error described in schema. + DefaultResponse(crate::models::User), + Status400(), + Status404(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `login_user` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum LoginUserErrors { - // TODO Generate an enum case for each error described in schema. + DefaultResponse(String), + Status400(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `logout_user` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum LogoutUserErrors { - // TODO Generate an enum case for each error described in schema. + DefaultResponse(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `update_user` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum UpdateUserErrors { - // TODO Generate an enum case for each error described in schema. + Status400(), + Status404(), UnknownList(Vec), UnknownValue(serde_json::Value), } + pub async fn create_user(configuration: &configuration::Configuration, body: crate::models::User) -> Result<(), Error> { let client = &configuration.client; diff --git a/samples/client/petstore/rust/reqwest/petstore/src/apis/pet_api.rs b/samples/client/petstore/rust/reqwest/petstore/src/apis/pet_api.rs index 1aadb04b93b..403d67455ca 100644 --- a/samples/client/petstore/rust/reqwest/petstore/src/apis/pet_api.rs +++ b/samples/client/petstore/rust/reqwest/petstore/src/apis/pet_api.rs @@ -34,67 +34,81 @@ impl PetApiClient { #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum AddPetErrors { - // TODO Generate an enum case for each error described in schema. + Status405(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `delete_pet` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum DeletePetErrors { - // TODO Generate an enum case for each error described in schema. + Status400(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `find_pets_by_status` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum FindPetsByStatusErrors { - // TODO Generate an enum case for each error described in schema. + DefaultResponse(Vec), + Status400(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `find_pets_by_tags` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum FindPetsByTagsErrors { - // TODO Generate an enum case for each error described in schema. + DefaultResponse(Vec), + Status400(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `get_pet_by_id` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum GetPetByIdErrors { - // TODO Generate an enum case for each error described in schema. + DefaultResponse(crate::models::Pet), + Status400(), + Status404(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `update_pet` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum UpdatePetErrors { - // TODO Generate an enum case for each error described in schema. + Status400(), + Status404(), + Status405(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `update_pet_with_form` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum UpdatePetWithFormErrors { - // TODO Generate an enum case for each error described in schema. + Status405(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `upload_file` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum UploadFileErrors { - // TODO Generate an enum case for each error described in schema. + DefaultResponse(crate::models::ApiResponse), UnknownList(Vec), UnknownValue(serde_json::Value), } + pub trait PetApi { fn add_pet(&self, body: crate::models::Pet) -> Result<(), Error>; fn delete_pet(&self, pet_id: i64, api_key: Option<&str>) -> Result<(), Error>; diff --git a/samples/client/petstore/rust/reqwest/petstore/src/apis/store_api.rs b/samples/client/petstore/rust/reqwest/petstore/src/apis/store_api.rs index e46c1dbcafd..378f260ff72 100644 --- a/samples/client/petstore/rust/reqwest/petstore/src/apis/store_api.rs +++ b/samples/client/petstore/rust/reqwest/petstore/src/apis/store_api.rs @@ -34,35 +34,43 @@ impl StoreApiClient { #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum DeleteOrderErrors { - // TODO Generate an enum case for each error described in schema. + Status400(), + Status404(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `get_inventory` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum GetInventoryErrors { - // TODO Generate an enum case for each error described in schema. + DefaultResponse(::std::collections::HashMap), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `get_order_by_id` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum GetOrderByIdErrors { - // TODO Generate an enum case for each error described in schema. + DefaultResponse(crate::models::Order), + Status400(), + Status404(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `place_order` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum PlaceOrderErrors { - // TODO Generate an enum case for each error described in schema. + DefaultResponse(crate::models::Order), + Status400(), UnknownList(Vec), UnknownValue(serde_json::Value), } + pub trait StoreApi { fn delete_order(&self, order_id: &str) -> Result<(), Error>; fn get_inventory(&self, ) -> Result<::std::collections::HashMap, Error>; diff --git a/samples/client/petstore/rust/reqwest/petstore/src/apis/user_api.rs b/samples/client/petstore/rust/reqwest/petstore/src/apis/user_api.rs index 828489f0e1a..0aea99edd67 100644 --- a/samples/client/petstore/rust/reqwest/petstore/src/apis/user_api.rs +++ b/samples/client/petstore/rust/reqwest/petstore/src/apis/user_api.rs @@ -34,67 +34,80 @@ impl UserApiClient { #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum CreateUserErrors { - // TODO Generate an enum case for each error described in schema. + DefaultResponse(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `create_users_with_array_input` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum CreateUsersWithArrayInputErrors { - // TODO Generate an enum case for each error described in schema. + DefaultResponse(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `create_users_with_list_input` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum CreateUsersWithListInputErrors { - // TODO Generate an enum case for each error described in schema. + DefaultResponse(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `delete_user` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum DeleteUserErrors { - // TODO Generate an enum case for each error described in schema. + Status400(), + Status404(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `get_user_by_name` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum GetUserByNameErrors { - // TODO Generate an enum case for each error described in schema. + DefaultResponse(crate::models::User), + Status400(), + Status404(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `login_user` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum LoginUserErrors { - // TODO Generate an enum case for each error described in schema. + DefaultResponse(String), + Status400(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `logout_user` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum LogoutUserErrors { - // TODO Generate an enum case for each error described in schema. + DefaultResponse(), UnknownList(Vec), UnknownValue(serde_json::Value), } + /// struct for typed errors of method `update_user` #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum UpdateUserErrors { - // TODO Generate an enum case for each error described in schema. + Status400(), + Status404(), UnknownList(Vec), UnknownValue(serde_json::Value), } + pub trait UserApi { fn create_user(&self, body: crate::models::User) -> Result<(), Error>; fn create_users_with_array_input(&self, body: Vec) -> Result<(), Error>; diff --git a/samples/client/petstore/rust/reqwest/rust-test/src/apis/default_api.rs b/samples/client/petstore/rust/reqwest/rust-test/src/apis/default_api.rs index 4b8eef5cb0b..9a3089d6ac8 100644 --- a/samples/client/petstore/rust/reqwest/rust-test/src/apis/default_api.rs +++ b/samples/client/petstore/rust/reqwest/rust-test/src/apis/default_api.rs @@ -34,11 +34,12 @@ impl DefaultApiClient { #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(untagged)] pub enum DummyGetErrors { - // TODO Generate an enum case for each error described in schema. + DefaultResponse(), UnknownList(Vec), UnknownValue(serde_json::Value), } + pub trait DefaultApi { fn dummy_get(&self, ) -> Result<(), Error>; }