|
2 | 2 | use crate::models; |
3 | 3 | {{#models}} |
4 | 4 | {{#model}} |
5 | | - |
| 5 | +{{^isEnum}}{{#vendorExtensions.x-rust-has-byte-array}} |
| 6 | +use serde_with::serde_as; |
| 7 | +{{/vendorExtensions.x-rust-has-byte-array}}{{/isEnum}} |
6 | 8 | {{#description}} |
7 | 9 | /// {{{classname}}} : {{{description}}} |
8 | 10 | {{/description}} |
@@ -85,23 +87,26 @@ impl Default for {{classname}} { |
85 | 87 | {{!-- for non-enum schemas --}} |
86 | 88 | {{^isEnum}} |
87 | 89 | {{^discriminator}} |
88 | | -{{#oneOf.isEmpty}} |
89 | | -#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] |
| 90 | +{{#vendorExtensions.x-rust-has-byte-array}}#[serde_as] |
| 91 | +{{/vendorExtensions.x-rust-has-byte-array}}{{#oneOf.isEmpty}}#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] |
90 | 92 | pub struct {{{classname}}} { |
91 | 93 | {{#vars}} |
92 | 94 | {{#description}} |
93 | 95 | /// {{{.}}} |
94 | 96 | {{/description}} |
| 97 | + {{#isByteArray}} |
| 98 | + {{#required}}#[serde_as(as = "serde_with::base64::Base64")]{{/required}}{{^required}}#[serde_as(as = "Option<serde_with::base64::Base64>")]{{/required}} |
| 99 | + {{/isByteArray}} |
95 | 100 | #[serde(rename = "{{{baseName}}}"{{^required}}{{#isNullable}}, default, with = "::serde_with::rust::double_option"{{/isNullable}}{{/required}}{{^required}}, skip_serializing_if = "Option::is_none"{{/required}}{{#required}}{{#isNullable}}, deserialize_with = "Option::deserialize"{{/isNullable}}{{/required}})] |
96 | | - pub {{{name}}}: {{#isNullable}}Option<{{/isNullable}}{{^required}}Option<{{/required}}{{#isEnum}}{{#isArray}}{{#uniqueItems}}std::collections::HashSet<{{/uniqueItems}}{{^uniqueItems}}Vec<{{/uniqueItems}}{{/isArray}}{{{enumName}}}{{#isArray}}>{{/isArray}}{{/isEnum}}{{^isEnum}}{{#isModel}}{{^avoidBoxedModels}}Box<{{/avoidBoxedModels}}{{{dataType}}}{{^avoidBoxedModels}}>{{/avoidBoxedModels}}{{/isModel}}{{^isModel}}{{{dataType}}}{{/isModel}}{{/isEnum}}{{#isNullable}}>{{/isNullable}}{{^required}}>{{/required}}, |
| 101 | + pub {{{name}}}: {{#isNullable}}Option<{{/isNullable}}{{^required}}Option<{{/required}}{{#isEnum}}{{#isArray}}{{#uniqueItems}}std::collections::HashSet<{{/uniqueItems}}{{^uniqueItems}}Vec<{{/uniqueItems}}{{/isArray}}{{{enumName}}}{{#isArray}}>{{/isArray}}{{/isEnum}}{{^isEnum}}{{#isModel}}{{^avoidBoxedModels}}Box<{{/avoidBoxedModels}}{{{dataType}}}{{^avoidBoxedModels}}>{{/avoidBoxedModels}}{{/isModel}}{{^isModel}}{{#isByteArray}}Vec<u8>{{/isByteArray}}{{^isByteArray}}{{{dataType}}}{{/isByteArray}}{{/isModel}}{{/isEnum}}{{#isNullable}}>{{/isNullable}}{{^required}}>{{/required}}, |
97 | 102 | {{/vars}} |
98 | 103 | } |
99 | 104 |
|
100 | 105 | impl {{{classname}}} { |
101 | 106 | {{#description}} |
102 | 107 | /// {{{.}}} |
103 | 108 | {{/description}} |
104 | | - pub fn new({{#requiredVars}}{{{name}}}: {{#isNullable}}Option<{{/isNullable}}{{#isEnum}}{{#isArray}}{{#uniqueItems}}std::collections::HashSet<{{/uniqueItems}}{{^uniqueItems}}Vec<{{/uniqueItems}}{{/isArray}}{{{enumName}}}{{#isArray}}>{{/isArray}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{#isNullable}}>{{/isNullable}}{{^-last}}, {{/-last}}{{/requiredVars}}) -> {{{classname}}} { |
| 109 | + pub fn new({{#requiredVars}}{{{name}}}: {{#isNullable}}Option<{{/isNullable}}{{#isEnum}}{{#isArray}}{{#uniqueItems}}std::collections::HashSet<{{/uniqueItems}}{{^uniqueItems}}Vec<{{/uniqueItems}}{{/isArray}}{{{enumName}}}{{#isArray}}>{{/isArray}}{{/isEnum}}{{^isEnum}}{{#isByteArray}}Vec<u8>{{/isByteArray}}{{^isByteArray}}{{{dataType}}}{{/isByteArray}}{{/isEnum}}{{#isNullable}}>{{/isNullable}}{{^-last}}, {{/-last}}{{/requiredVars}}) -> {{{classname}}} { |
105 | 110 | {{{classname}}} { |
106 | 111 | {{#vars}} |
107 | 112 | {{{name}}}{{^required}}: None{{/required}}{{#required}}{{#isModel}}{{^avoidBoxedModels}}: {{^isNullable}}Box::new({{{name}}}){{/isNullable}}{{#isNullable}}if let Some(x) = {{{name}}} {Some(Box::new(x))} else {None}{{/isNullable}}{{/avoidBoxedModels}}{{/isModel}}{{/required}}, |
|
0 commit comments