119 119 | "aws.protocoltests.restxml.synthetic",
|
120 120 | "InputAndOutputWithHeadersInput",
|
121 121 | );
|
122 122 | static INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_STRING: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
|
123 123 | ::aws_smithy_schema::ShapeId::from_static(
|
124 124 | "aws.protocoltests.restxml.synthetic#InputAndOutputWithHeadersInput$headerString",
|
125 125 | "aws.protocoltests.restxml.synthetic",
|
126 126 | "InputAndOutputWithHeadersInput",
|
127 127 | ),
|
128 128 | ::aws_smithy_schema::ShapeType::String,
|
129 - | "header_string",
|
129 + | "headerString",
|
130 130 | 0,
|
131 131 | )
|
132 132 | .with_http_header("X-String");
|
133 133 | static INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_BYTE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
|
134 134 | ::aws_smithy_schema::ShapeId::from_static(
|
135 135 | "aws.protocoltests.restxml.synthetic#InputAndOutputWithHeadersInput$headerByte",
|
136 136 | "aws.protocoltests.restxml.synthetic",
|
137 137 | "InputAndOutputWithHeadersInput",
|
138 138 | ),
|
139 139 | ::aws_smithy_schema::ShapeType::Byte,
|
140 - | "header_byte",
|
140 + | "headerByte",
|
141 141 | 1,
|
142 142 | )
|
143 143 | .with_http_header("X-Byte");
|
144 144 | static INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_SHORT: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
|
145 145 | ::aws_smithy_schema::ShapeId::from_static(
|
146 146 | "aws.protocoltests.restxml.synthetic#InputAndOutputWithHeadersInput$headerShort",
|
147 147 | "aws.protocoltests.restxml.synthetic",
|
148 148 | "InputAndOutputWithHeadersInput",
|
149 149 | ),
|
150 150 | ::aws_smithy_schema::ShapeType::Short,
|
151 - | "header_short",
|
151 + | "headerShort",
|
152 152 | 2,
|
153 153 | )
|
154 154 | .with_http_header("X-Short");
|
155 155 | static INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_INTEGER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
|
156 156 | ::aws_smithy_schema::ShapeId::from_static(
|
157 157 | "aws.protocoltests.restxml.synthetic#InputAndOutputWithHeadersInput$headerInteger",
|
158 158 | "aws.protocoltests.restxml.synthetic",
|
159 159 | "InputAndOutputWithHeadersInput",
|
160 160 | ),
|
161 161 | ::aws_smithy_schema::ShapeType::Integer,
|
162 - | "header_integer",
|
162 + | "headerInteger",
|
163 163 | 3,
|
164 164 | )
|
165 165 | .with_http_header("X-Integer");
|
166 166 | static INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_LONG: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
|
167 167 | ::aws_smithy_schema::ShapeId::from_static(
|
168 168 | "aws.protocoltests.restxml.synthetic#InputAndOutputWithHeadersInput$headerLong",
|
169 169 | "aws.protocoltests.restxml.synthetic",
|
170 170 | "InputAndOutputWithHeadersInput",
|
171 171 | ),
|
172 172 | ::aws_smithy_schema::ShapeType::Long,
|
173 - | "header_long",
|
173 + | "headerLong",
|
174 174 | 4,
|
175 175 | )
|
176 176 | .with_http_header("X-Long");
|
177 177 | static INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_FLOAT: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
|
178 178 | ::aws_smithy_schema::ShapeId::from_static(
|
179 179 | "aws.protocoltests.restxml.synthetic#InputAndOutputWithHeadersInput$headerFloat",
|
180 180 | "aws.protocoltests.restxml.synthetic",
|
181 181 | "InputAndOutputWithHeadersInput",
|
182 182 | ),
|
183 183 | ::aws_smithy_schema::ShapeType::Float,
|
184 - | "header_float",
|
184 + | "headerFloat",
|
185 185 | 5,
|
186 186 | )
|
187 187 | .with_http_header("X-Float");
|
188 188 | static INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_DOUBLE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
|
189 189 | ::aws_smithy_schema::ShapeId::from_static(
|
190 190 | "aws.protocoltests.restxml.synthetic#InputAndOutputWithHeadersInput$headerDouble",
|
191 191 | "aws.protocoltests.restxml.synthetic",
|
192 192 | "InputAndOutputWithHeadersInput",
|
193 193 | ),
|
194 194 | ::aws_smithy_schema::ShapeType::Double,
|
195 - | "header_double",
|
195 + | "headerDouble",
|
196 196 | 6,
|
197 197 | )
|
198 198 | .with_http_header("X-Double");
|
199 199 | static INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_TRUE_BOOL: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
|
200 200 | ::aws_smithy_schema::ShapeId::from_static(
|
201 201 | "aws.protocoltests.restxml.synthetic#InputAndOutputWithHeadersInput$headerTrueBool",
|
202 202 | "aws.protocoltests.restxml.synthetic",
|
203 203 | "InputAndOutputWithHeadersInput",
|
204 204 | ),
|
205 205 | ::aws_smithy_schema::ShapeType::Boolean,
|
206 - | "header_true_bool",
|
206 + | "headerTrueBool",
|
207 207 | 7,
|
208 208 | )
|
209 209 | .with_http_header("X-Boolean1");
|
210 210 | static INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_FALSE_BOOL: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
|
211 211 | ::aws_smithy_schema::ShapeId::from_static(
|
212 212 | "aws.protocoltests.restxml.synthetic#InputAndOutputWithHeadersInput$headerFalseBool",
|
213 213 | "aws.protocoltests.restxml.synthetic",
|
214 214 | "InputAndOutputWithHeadersInput",
|
215 215 | ),
|
216 216 | ::aws_smithy_schema::ShapeType::Boolean,
|
217 - | "header_false_bool",
|
217 + | "headerFalseBool",
|
218 218 | 8,
|
219 219 | )
|
220 220 | .with_http_header("X-Boolean2");
|
221 221 | static INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_STRING_LIST: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
|
222 222 | ::aws_smithy_schema::ShapeId::from_static(
|
223 223 | "aws.protocoltests.restxml.synthetic#InputAndOutputWithHeadersInput$headerStringList",
|
224 224 | "aws.protocoltests.restxml.synthetic",
|
225 225 | "InputAndOutputWithHeadersInput",
|
226 226 | ),
|
227 227 | ::aws_smithy_schema::ShapeType::List,
|
228 - | "header_string_list",
|
228 + | "headerStringList",
|
229 229 | 9,
|
230 230 | )
|
231 231 | .with_http_header("X-StringList");
|
232 232 | static INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_STRING_SET: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
|
233 233 | ::aws_smithy_schema::ShapeId::from_static(
|
234 234 | "aws.protocoltests.restxml.synthetic#InputAndOutputWithHeadersInput$headerStringSet",
|
235 235 | "aws.protocoltests.restxml.synthetic",
|
236 236 | "InputAndOutputWithHeadersInput",
|
237 237 | ),
|
238 238 | ::aws_smithy_schema::ShapeType::List,
|
239 - | "header_string_set",
|
239 + | "headerStringSet",
|
240 240 | 10,
|
241 241 | )
|
242 242 | .with_http_header("X-StringSet");
|
243 243 | static INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_INTEGER_LIST: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
|
244 244 | ::aws_smithy_schema::ShapeId::from_static(
|
245 245 | "aws.protocoltests.restxml.synthetic#InputAndOutputWithHeadersInput$headerIntegerList",
|
246 246 | "aws.protocoltests.restxml.synthetic",
|
247 247 | "InputAndOutputWithHeadersInput",
|
248 248 | ),
|
249 249 | ::aws_smithy_schema::ShapeType::List,
|
250 - | "header_integer_list",
|
250 + | "headerIntegerList",
|
251 251 | 11,
|
252 252 | )
|
253 253 | .with_http_header("X-IntegerList");
|
254 254 | static INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_BOOLEAN_LIST: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
|
255 255 | ::aws_smithy_schema::ShapeId::from_static(
|
256 256 | "aws.protocoltests.restxml.synthetic#InputAndOutputWithHeadersInput$headerBooleanList",
|
257 257 | "aws.protocoltests.restxml.synthetic",
|
258 258 | "InputAndOutputWithHeadersInput",
|
259 259 | ),
|
260 260 | ::aws_smithy_schema::ShapeType::List,
|
261 - | "header_boolean_list",
|
261 + | "headerBooleanList",
|
262 262 | 12,
|
263 263 | )
|
264 264 | .with_http_header("X-BooleanList");
|
265 265 | static INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_TIMESTAMP_LIST: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
|
266 266 | ::aws_smithy_schema::ShapeId::from_static(
|
267 267 | "aws.protocoltests.restxml.synthetic#InputAndOutputWithHeadersInput$headerTimestampList",
|
268 268 | "aws.protocoltests.restxml.synthetic",
|
269 269 | "InputAndOutputWithHeadersInput",
|
270 270 | ),
|
271 271 | ::aws_smithy_schema::ShapeType::List,
|
272 - | "header_timestamp_list",
|
272 + | "headerTimestampList",
|
273 273 | 13,
|
274 274 | )
|
275 275 | .with_http_header("X-TimestampList");
|
276 276 | static INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_ENUM: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
|
277 277 | ::aws_smithy_schema::ShapeId::from_static(
|
278 278 | "aws.protocoltests.restxml.synthetic#InputAndOutputWithHeadersInput$headerEnum",
|
279 279 | "aws.protocoltests.restxml.synthetic",
|
280 280 | "InputAndOutputWithHeadersInput",
|
281 281 | ),
|
282 282 | ::aws_smithy_schema::ShapeType::String,
|
283 - | "header_enum",
|
283 + | "headerEnum",
|
284 284 | 14,
|
285 285 | )
|
286 286 | .with_http_header("X-Enum");
|
287 287 | static INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_ENUM_LIST: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
|
288 288 | ::aws_smithy_schema::ShapeId::from_static(
|
289 289 | "aws.protocoltests.restxml.synthetic#InputAndOutputWithHeadersInput$headerEnumList",
|
290 290 | "aws.protocoltests.restxml.synthetic",
|
291 291 | "InputAndOutputWithHeadersInput",
|
292 292 | ),
|
293 293 | ::aws_smithy_schema::ShapeType::List,
|
294 - | "header_enum_list",
|
294 + | "headerEnumList",
|
295 295 | 15,
|
296 296 | )
|
297 297 | .with_http_header("X-EnumList");
|
298 298 | static INPUTANDOUTPUTWITHHEADERSINPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
|
299 299 | INPUTANDOUTPUTWITHHEADERSINPUT_SCHEMA_ID,
|
300 300 | ::aws_smithy_schema::ShapeType::Structure,
|
301 301 | &[
|
302 302 | &INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_STRING,
|
303 303 | &INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_BYTE,
|
304 304 | &INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_SHORT,
|
305 305 | &INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_INTEGER,
|
306 306 | &INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_LONG,
|
307 307 | &INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_FLOAT,
|
308 308 | &INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_DOUBLE,
|
309 309 | &INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_TRUE_BOOL,
|
310 310 | &INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_FALSE_BOOL,
|
311 311 | &INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_STRING_LIST,
|
312 312 | &INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_STRING_SET,
|
313 313 | &INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_INTEGER_LIST,
|
314 314 | &INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_BOOLEAN_LIST,
|
315 315 | &INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_TIMESTAMP_LIST,
|
316 316 | &INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_ENUM,
|
317 317 | &INPUTANDOUTPUTWITHHEADERSINPUT_MEMBER_HEADER_ENUM_LIST,
|
318 318 | ],
|
319 - | );
|
319 + | )
|
320 + | .with_http(aws_smithy_schema::traits::HttpTrait::new("POST", "/InputAndOutputWithHeaders", None));
|
320 321 | impl InputAndOutputWithHeadersInput {
|
321 322 | /// The schema for this shape.
|
322 323 | pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &INPUTANDOUTPUTWITHHEADERSINPUT_SCHEMA;
|
323 324 | }
|
324 325 | impl ::aws_smithy_schema::serde::SerializableStruct for InputAndOutputWithHeadersInput {
|
325 326 | #[allow(unused_variables, clippy::diverging_sub_expression)]
|
326 327 | fn serialize_members(
|
327 328 | &self,
|
328 329 | ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
|
329 330 | ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
|
421 422 | }
|
422 423 | Ok(())
|
423 424 | },
|
424 425 | )?;
|
425 426 | }
|
426 427 | Ok(())
|
427 428 | }
|
428 429 | }
|
429 430 | impl InputAndOutputWithHeadersInput {
|
430 431 | /// Deserializes this structure from a [`ShapeDeserializer`].
|
431 - | pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
|
432 - | deserializer: &mut D,
|
432 + | pub fn deserialize(
|
433 + | deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
|
433 434 | ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
|
434 435 | #[allow(unused_variables, unused_mut)]
|
435 436 | let mut builder = Self::builder();
|
436 437 | #[allow(
|
437 438 | unused_variables,
|
438 439 | unreachable_code,
|
439 440 | clippy::single_match,
|
440 441 | clippy::match_single_binding,
|
441 442 | clippy::diverging_sub_expression
|
442 443 | )]
|
443 - | deserializer.read_struct(&INPUTANDOUTPUTWITHHEADERSINPUT_SCHEMA, (), |_, member, deser| {
|
444 + | deserializer.read_struct(&INPUTANDOUTPUTWITHHEADERSINPUT_SCHEMA, &mut |member, deser| {
|
444 445 | match member.member_index() {
|
445 446 | Some(0) => {
|
446 447 | builder.header_string = Some(deser.read_string(member)?);
|
447 448 | }
|
448 449 | Some(1) => {
|
449 450 | builder.header_byte = Some(deser.read_byte(member)?);
|
450 451 | }
|
451 452 | Some(2) => {
|
452 453 | builder.header_short = Some(deser.read_short(member)?);
|
453 454 | }
|
454 455 | Some(3) => {
|
455 456 | builder.header_integer = Some(deser.read_integer(member)?);
|
456 457 | }
|
457 458 | Some(4) => {
|
458 459 | builder.header_long = Some(deser.read_long(member)?);
|
459 460 | }
|
460 461 | Some(5) => {
|
461 462 | builder.header_float = Some(deser.read_float(member)?);
|
462 463 | }
|
463 464 | Some(6) => {
|
464 465 | builder.header_double = Some(deser.read_double(member)?);
|
465 466 | }
|
466 467 | Some(7) => {
|
467 468 | builder.header_true_bool = Some(deser.read_boolean(member)?);
|
468 469 | }
|
469 470 | Some(8) => {
|
470 471 | builder.header_false_bool = Some(deser.read_boolean(member)?);
|
471 472 | }
|
472 473 | Some(9) => {
|
473 - | builder.header_string_list = Some({
|
474 - | let container = if let Some(cap) = deser.container_size() {
|
475 - | Vec::with_capacity(cap)
|
476 - | } else {
|
477 - | Vec::new()
|
478 - | };
|
479 - | deser.read_list(member, container, |mut list, deser| {
|
480 - | list.push(deser.read_string(member)?);
|
481 - | Ok(list)
|
482 - | })?
|
483 - | });
|
474 + | builder.header_string_list = Some(deser.read_string_list(member)?);
|
484 475 | }
|
485 476 | Some(10) => {
|
486 - | builder.header_string_set = Some({
|
487 - | let container = if let Some(cap) = deser.container_size() {
|
488 - | Vec::with_capacity(cap)
|
489 - | } else {
|
490 - | Vec::new()
|
491 - | };
|
492 - | deser.read_list(member, container, |mut list, deser| {
|
493 - | list.push(deser.read_string(member)?);
|
494 - | Ok(list)
|
495 - | })?
|
496 - | });
|
477 + | builder.header_string_set = Some(deser.read_string_list(member)?);
|
497 478 | }
|
498 479 | Some(11) => {
|
499 - | builder.header_integer_list = Some({
|
500 - | let container = if let Some(cap) = deser.container_size() {
|
501 - | Vec::with_capacity(cap)
|
502 - | } else {
|
503 - | Vec::new()
|
504 - | };
|
505 - | deser.read_list(member, container, |mut list, deser| {
|
506 - | list.push(deser.read_integer(member)?);
|
507 - | Ok(list)
|
508 - | })?
|
509 - | });
|
480 + | builder.header_integer_list = Some(deser.read_integer_list(member)?);
|
510 481 | }
|
511 482 | Some(12) => {
|
512 483 | builder.header_boolean_list = Some({
|
513 - | let container = if let Some(cap) = deser.container_size() {
|
514 - | Vec::with_capacity(cap)
|
515 - | } else {
|
516 - | Vec::new()
|
517 - | };
|
518 - | deser.read_list(member, container, |mut list, deser| {
|
519 - | list.push(deser.read_boolean(member)?);
|
520 - | Ok(list)
|
521 - | })?
|
484 + | let mut container = Vec::new();
|
485 + | deser.read_list(member, &mut |deser| {
|
486 + | container.push(deser.read_boolean(member)?);
|
487 + | Ok(())
|
488 + | })?;
|
489 + | container
|
522 490 | });
|
523 491 | }
|
524 492 | Some(13) => {
|
525 493 | builder.header_timestamp_list = Some({
|
526 - | let container = if let Some(cap) = deser.container_size() {
|
527 - | Vec::with_capacity(cap)
|
528 - | } else {
|
529 - | Vec::new()
|
530 - | };
|
531 - | deser.read_list(member, container, |mut list, deser| {
|
532 - | list.push(deser.read_timestamp(member)?);
|
533 - | Ok(list)
|
534 - | })?
|
494 + | let mut container = Vec::new();
|
495 + | deser.read_list(member, &mut |deser| {
|
496 + | container.push(deser.read_timestamp(member)?);
|
497 + | Ok(())
|
498 + | })?;
|
499 + | container
|
535 500 | });
|
536 501 | }
|
537 502 | Some(14) => {
|
538 503 | builder.header_enum = Some(crate::types::FooEnum::from(deser.read_string(member)?.as_str()));
|
539 504 | }
|
540 505 | Some(15) => {
|
541 506 | builder.header_enum_list = Some({
|
542 - | let container = if let Some(cap) = deser.container_size() {
|
543 - | Vec::with_capacity(cap)
|
544 - | } else {
|
545 - | Vec::new()
|
546 - | };
|
547 - | deser.read_list(member, container, |mut list, deser| {
|
548 - | list.push(crate::types::FooEnum::from(deser.read_string(member)?.as_str()));
|
549 - | Ok(list)
|
550 - | })?
|
507 + | let mut container = Vec::new();
|
508 + | deser.read_list(member, &mut |deser| {
|
509 + | container.push(crate::types::FooEnum::from(deser.read_string(member)?.as_str()));
|
510 + | Ok(())
|
511 + | })?;
|
512 + | container
|
551 513 | });
|
552 514 | }
|
553 515 | _ => {}
|
554 516 | }
|
555 517 | Ok(())
|
556 518 | })?;
|
557 519 | builder
|
558 520 | .build()
|
559 521 | .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
|
560 522 | }
|
561 523 | }
|
524 + | impl InputAndOutputWithHeadersInput {
|
525 + | /// Deserializes this structure from a body deserializer and HTTP response headers.
|
526 + | /// Header-bound members are read directly from headers, avoiding runtime
|
527 + | /// member iteration overhead. Body members are read via the deserializer.
|
528 + | pub fn deserialize_with_response(
|
529 + | _deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
|
530 + | headers: &::aws_smithy_runtime_api::http::Headers,
|
531 + | _status: u16,
|
532 + | _body: &[u8],
|
533 + | ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
|
534 + | #[allow(unused_variables, unused_mut)]
|
535 + | let mut builder = Self::builder();
|
536 + | if let Some(val) = headers.get("X-String") {
|
537 + | builder.header_string = Some(val.to_string());
|
538 + | }
|
539 + | if let Some(val) = headers.get("X-Byte") {
|
540 + | builder.header_byte = val.parse::<i8>().ok();
|
541 + | }
|
542 + | if let Some(val) = headers.get("X-Short") {
|
543 + | builder.header_short = val.parse::<i16>().ok();
|
544 + | }
|
545 + | if let Some(val) = headers.get("X-Integer") {
|
546 + | builder.header_integer = val.parse::<i32>().ok();
|
547 + | }
|
548 + | if let Some(val) = headers.get("X-Long") {
|
549 + | builder.header_long = val.parse::<i64>().ok();
|
550 + | }
|
551 + | if let Some(val) = headers.get("X-Float") {
|
552 + | builder.header_float = val.parse::<f32>().ok();
|
553 + | }
|
554 + | if let Some(val) = headers.get("X-Double") {
|
555 + | builder.header_double = val.parse::<f64>().ok();
|
556 + | }
|
557 + | if let Some(val) = headers.get("X-Boolean1") {
|
558 + | builder.header_true_bool = val.parse::<bool>().ok();
|
559 + | }
|
560 + | if let Some(val) = headers.get("X-Boolean2") {
|
561 + | builder.header_false_bool = val.parse::<bool>().ok();
|
562 + | }
|
563 + | if let Some(val) = headers.get("X-StringList") {
|
564 + | builder.header_string_list = {
|
565 + | let mut items = Vec::new();
|
566 + | let mut chars = val.chars().peekable();
|
567 + | while chars.peek().is_some() {
|
568 + | // Skip whitespace
|
569 + | while chars.peek() == Some(&' ') {
|
570 + | chars.next();
|
571 + | }
|
572 + | if chars.peek() == Some(&'"') {
|
573 + | chars.next(); // skip opening quote
|
574 + | let mut s = String::new();
|
575 + | while let Some(&c) = chars.peek() {
|
576 + | if c == '\\' {
|
577 + | chars.next();
|
578 + | if let Some(escaped) = chars.next() {
|
579 + | s.push(escaped);
|
580 + | }
|
581 + | } else if c == '"' {
|
582 + | chars.next();
|
583 + | break;
|
584 + | } else {
|
585 + | s.push(c);
|
586 + | chars.next();
|
587 + | }
|
588 + | }
|
589 + | items.push(s);
|
590 + | } else {
|
591 + | let s: String = chars.by_ref().take_while(|&c| c != ',').collect();
|
592 + | let trimmed = s.trim();
|
593 + | if !trimmed.is_empty() {
|
594 + | items.push(trimmed.to_string());
|
595 + | }
|
596 + | }
|
597 + | // Skip comma separator
|
598 + | while chars.peek() == Some(&',') || chars.peek() == Some(&' ') {
|
599 + | chars.next();
|
600 + | }
|
601 + | }
|
602 + | Some(items)
|
603 + | };
|
604 + | }
|
605 + | if let Some(val) = headers.get("X-StringSet") {
|
606 + | builder.header_string_set = {
|
607 + | let mut items = Vec::new();
|
608 + | let mut chars = val.chars().peekable();
|
609 + | while chars.peek().is_some() {
|
610 + | // Skip whitespace
|
611 + | while chars.peek() == Some(&' ') {
|
612 + | chars.next();
|
613 + | }
|
614 + | if chars.peek() == Some(&'"') {
|
615 + | chars.next(); // skip opening quote
|
616 + | let mut s = String::new();
|
617 + | while let Some(&c) = chars.peek() {
|
618 + | if c == '\\' {
|
619 + | chars.next();
|
620 + | if let Some(escaped) = chars.next() {
|
621 + | s.push(escaped);
|
622 + | }
|
623 + | } else if c == '"' {
|
624 + | chars.next();
|
625 + | break;
|
626 + | } else {
|
627 + | s.push(c);
|
628 + | chars.next();
|
629 + | }
|
630 + | }
|
631 + | items.push(s);
|
632 + | } else {
|
633 + | let s: String = chars.by_ref().take_while(|&c| c != ',').collect();
|
634 + | let trimmed = s.trim();
|
635 + | if !trimmed.is_empty() {
|
636 + | items.push(trimmed.to_string());
|
637 + | }
|
638 + | }
|
639 + | // Skip comma separator
|
640 + | while chars.peek() == Some(&',') || chars.peek() == Some(&' ') {
|
641 + | chars.next();
|
642 + | }
|
643 + | }
|
644 + | Some(items)
|
645 + | };
|
646 + | }
|
647 + | if let Some(val) = headers.get("X-IntegerList") {
|
648 + | builder.header_integer_list = Some(val.split(',').filter_map(|s| s.trim().parse::<i32>().ok()).collect());
|
649 + | }
|
650 + | if let Some(val) = headers.get("X-BooleanList") {
|
651 + | builder.header_boolean_list = Some(val.split(',').filter_map(|s| s.trim().parse::<bool>().ok()).collect());
|
652 + | }
|
653 + | if let Some(val) = headers.get("X-TimestampList") {
|
654 + | builder.header_timestamp_list = {
|
655 + | let mut timestamps = Vec::new();
|
656 + | let re_split: Vec<&str> = val.split(", ").collect();
|
657 + | let mut i = 0;
|
658 + | while i < re_split.len() {
|
659 + | if i + 1 < re_split.len() {
|
660 + | let combined = format!("{}, {}", re_split[i], re_split[i + 1]);
|
661 + | if let Ok(ts) = ::aws_smithy_types::DateTime::from_str(&combined, ::aws_smithy_types::date_time::Format::HttpDate) {
|
662 + | timestamps.push(ts);
|
663 + | i += 2;
|
664 + | continue;
|
665 + | }
|
666 + | }
|
667 + | if let Ok(ts) = ::aws_smithy_types::DateTime::from_str(re_split[i].trim(), ::aws_smithy_types::date_time::Format::HttpDate) {
|
668 + | timestamps.push(ts);
|
669 + | }
|
670 + | i += 1;
|
671 + | }
|
672 + | Some(timestamps)
|
673 + | };
|
674 + | }
|
675 + | if let Some(val) = headers.get("X-Enum") {
|
676 + | builder.header_enum = Some(crate::types::FooEnum::from(val));
|
677 + | }
|
678 + | if let Some(val) = headers.get("X-EnumList") {
|
679 + | builder.header_enum_list = Some(val.split(',').map(|s| crate::types::FooEnum::from(s.trim())).collect());
|
680 + | }
|
681 + | builder
|
682 + | .build()
|
683 + | .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
|
684 + | }
|
685 + | }
|
562 686 | impl InputAndOutputWithHeadersInput {
|
563 687 | /// Creates a new builder-style object to manufacture [`InputAndOutputWithHeadersInput`](crate::operation::input_and_output_with_headers::InputAndOutputWithHeadersInput).
|
564 688 | pub fn builder() -> crate::operation::input_and_output_with_headers::builders::InputAndOutputWithHeadersInputBuilder {
|
565 689 | crate::operation::input_and_output_with_headers::builders::InputAndOutputWithHeadersInputBuilder::default()
|
566 690 | }
|
567 691 | }
|
568 692 |
|
569 693 | /// A builder for [`InputAndOutputWithHeadersInput`](crate::operation::input_and_output_with_headers::InputAndOutputWithHeadersInput).
|
570 694 | #[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
|
571 695 | #[non_exhaustive]
|