[Rust] Derive more traits (#4142)

* Simple enums: add: Clone, Copy, Eq, Ord, PartialOrd, Hash
* Structs and complex enums: add `Clone`
This commit is contained in:
Emanuel Borsboom 2019-11-19 00:15:23 -08:00 committed by William Cheng
parent 518c33a209
commit 6e2e542f83
15 changed files with 22 additions and 22 deletions

View File

@ -8,7 +8,7 @@
{{!-- for enum schemas --}}
{{#isEnum}}
/// {{{description}}}
#[derive(Debug, PartialEq, Serialize, Deserialize)]
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum {{classname}} {
{{#allowableValues}}
{{#enumVars}}
@ -20,7 +20,7 @@ pub enum {{classname}} {
{{!-- for schemas that have a discriminator --}}
{{#discriminator}}
#[derive(Debug, PartialEq, Serialize, Deserialize)]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(tag = "{{{vendorExtensions.tagName}}}")]
pub enum {{classname}} {
{{#vendorExtensions}}
@ -44,7 +44,7 @@ pub enum {{classname}} {
{{!-- for non-enum schemas --}}
{{^isEnum}}
{{^discriminator}}
#[derive(Debug, PartialEq, Serialize, Deserialize)]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct {{{classname}}} {
{{#vars}}
{{#description}}
@ -74,7 +74,7 @@ impl {{{classname}}} {
{{#vars}}
{{#isEnum}}
/// {{{description}}}
#[derive(Debug, PartialEq, Serialize, Deserialize)]
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum {{enumName}} {
{{#allowableValues}}
{{#enumVars}}

View File

@ -12,7 +12,7 @@
#[derive(Debug, PartialEq, Serialize, Deserialize)]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct ApiResponse {
#[serde(rename = "code", skip_serializing_if = "Option::is_none")]
pub code: Option<i32>,

View File

@ -12,7 +12,7 @@
#[derive(Debug, PartialEq, Serialize, Deserialize)]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct Category {
#[serde(rename = "id", skip_serializing_if = "Option::is_none")]
pub id: Option<i64>,

View File

@ -12,7 +12,7 @@
#[derive(Debug, PartialEq, Serialize, Deserialize)]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct Order {
#[serde(rename = "id", skip_serializing_if = "Option::is_none")]
pub id: Option<i64>,
@ -44,7 +44,7 @@ impl Order {
}
/// Order Status
#[derive(Debug, PartialEq, Serialize, Deserialize)]
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "placed")]
Placed,

View File

@ -12,7 +12,7 @@
#[derive(Debug, PartialEq, Serialize, Deserialize)]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct Pet {
#[serde(rename = "id", skip_serializing_if = "Option::is_none")]
pub id: Option<i64>,
@ -44,7 +44,7 @@ impl Pet {
}
/// pet status in the store
#[derive(Debug, PartialEq, Serialize, Deserialize)]
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "available")]
Available,

View File

@ -12,7 +12,7 @@
#[derive(Debug, PartialEq, Serialize, Deserialize)]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct Tag {
#[serde(rename = "id", skip_serializing_if = "Option::is_none")]
pub id: Option<i64>,

View File

@ -12,7 +12,7 @@
#[derive(Debug, PartialEq, Serialize, Deserialize)]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct User {
#[serde(rename = "id", skip_serializing_if = "Option::is_none")]
pub id: Option<i64>,

View File

@ -12,7 +12,7 @@
#[derive(Debug, PartialEq, Serialize, Deserialize)]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct TypeTesting {
#[serde(rename = "integer", skip_serializing_if = "Option::is_none")]
pub integer: Option<i32>,

View File

@ -12,7 +12,7 @@
#[derive(Debug, PartialEq, Serialize, Deserialize)]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct ApiResponse {
#[serde(rename = "code", skip_serializing_if = "Option::is_none")]
pub code: Option<i32>,

View File

@ -12,7 +12,7 @@
#[derive(Debug, PartialEq, Serialize, Deserialize)]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct Category {
#[serde(rename = "id", skip_serializing_if = "Option::is_none")]
pub id: Option<i64>,

View File

@ -12,7 +12,7 @@
#[derive(Debug, PartialEq, Serialize, Deserialize)]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct Order {
#[serde(rename = "id", skip_serializing_if = "Option::is_none")]
pub id: Option<i64>,
@ -44,7 +44,7 @@ impl Order {
}
/// Order Status
#[derive(Debug, PartialEq, Serialize, Deserialize)]
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "placed")]
Placed,

View File

@ -12,7 +12,7 @@
#[derive(Debug, PartialEq, Serialize, Deserialize)]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct Pet {
#[serde(rename = "id", skip_serializing_if = "Option::is_none")]
pub id: Option<i64>,
@ -44,7 +44,7 @@ impl Pet {
}
/// pet status in the store
#[derive(Debug, PartialEq, Serialize, Deserialize)]
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "available")]
Available,

View File

@ -12,7 +12,7 @@
#[derive(Debug, PartialEq, Serialize, Deserialize)]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct Tag {
#[serde(rename = "id", skip_serializing_if = "Option::is_none")]
pub id: Option<i64>,

View File

@ -12,7 +12,7 @@
#[derive(Debug, PartialEq, Serialize, Deserialize)]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct User {
#[serde(rename = "id", skip_serializing_if = "Option::is_none")]
pub id: Option<i64>,

View File

@ -12,7 +12,7 @@
#[derive(Debug, PartialEq, Serialize, Deserialize)]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct TypeTesting {
#[serde(rename = "integer", skip_serializing_if = "Option::is_none")]
pub integer: Option<i32>,