1use super::*;
2#[cfg_attr(feature = "derive-debug", derive(Debug))]
4#[cfg_attr(feature = "derive-clone", derive(Clone))]
5pub struct DrinkAction {
6 pub r#action_status: Vec<ActionStatusProperty>,
8 pub r#agent: Vec<AgentProperty>,
10 pub r#end_time: Vec<EndTimeProperty>,
12 pub r#error: Vec<ErrorProperty>,
14 pub r#instrument: Vec<InstrumentProperty>,
16 pub r#location: Vec<LocationProperty>,
18 pub r#object: Vec<ObjectProperty>,
20 pub r#participant: Vec<ParticipantProperty>,
22 pub r#provider: Vec<ProviderProperty>,
24 pub r#result: Vec<ResultProperty>,
26 pub r#start_time: Vec<StartTimeProperty>,
28 pub r#target: Vec<TargetProperty>,
30 pub r#action_accessibility_requirement: Vec<ActionAccessibilityRequirementProperty>,
32 pub r#expects_acceptance_of: Vec<ExpectsAcceptanceOfProperty>,
34 pub r#additional_type: Vec<AdditionalTypeProperty>,
36 pub r#alternate_name: Vec<AlternateNameProperty>,
38 pub r#description: Vec<DescriptionProperty>,
40 pub r#disambiguating_description: Vec<DisambiguatingDescriptionProperty>,
42 pub r#identifier: Vec<IdentifierProperty>,
44 pub r#image: Vec<ImageProperty>,
46 pub r#main_entity_of_page: Vec<MainEntityOfPageProperty>,
48 pub r#name: Vec<NameProperty>,
50 pub r#potential_action: Vec<PotentialActionProperty>,
52 pub r#same_as: Vec<SameAsProperty>,
54 pub r#subject_of: Vec<SubjectOfProperty>,
56 pub r#url: Vec<UrlProperty>,
58}
59pub trait DrinkActionTrait {}
61impl DrinkActionTrait for DrinkAction {}
62impl ActionTrait for DrinkAction {
63 fn get_action_status(&self) -> &[ActionStatusProperty] {
64 self.r#action_status.as_slice()
65 }
66 fn take_action_status(&mut self) -> Vec<ActionStatusProperty> {
67 std::mem::take(&mut self.r#action_status)
68 }
69 fn get_agent(&self) -> &[AgentProperty] {
70 self.r#agent.as_slice()
71 }
72 fn take_agent(&mut self) -> Vec<AgentProperty> {
73 std::mem::take(&mut self.r#agent)
74 }
75 fn get_end_time(&self) -> &[EndTimeProperty] {
76 self.r#end_time.as_slice()
77 }
78 fn take_end_time(&mut self) -> Vec<EndTimeProperty> {
79 std::mem::take(&mut self.r#end_time)
80 }
81 fn get_error(&self) -> &[ErrorProperty] {
82 self.r#error.as_slice()
83 }
84 fn take_error(&mut self) -> Vec<ErrorProperty> {
85 std::mem::take(&mut self.r#error)
86 }
87 fn get_instrument(&self) -> &[InstrumentProperty] {
88 self.r#instrument.as_slice()
89 }
90 fn take_instrument(&mut self) -> Vec<InstrumentProperty> {
91 std::mem::take(&mut self.r#instrument)
92 }
93 fn get_location(&self) -> &[LocationProperty] {
94 self.r#location.as_slice()
95 }
96 fn take_location(&mut self) -> Vec<LocationProperty> {
97 std::mem::take(&mut self.r#location)
98 }
99 fn get_object(&self) -> &[ObjectProperty] {
100 self.r#object.as_slice()
101 }
102 fn take_object(&mut self) -> Vec<ObjectProperty> {
103 std::mem::take(&mut self.r#object)
104 }
105 fn get_participant(&self) -> &[ParticipantProperty] {
106 self.r#participant.as_slice()
107 }
108 fn take_participant(&mut self) -> Vec<ParticipantProperty> {
109 std::mem::take(&mut self.r#participant)
110 }
111 fn get_provider(&self) -> &[ProviderProperty] {
112 self.r#provider.as_slice()
113 }
114 fn take_provider(&mut self) -> Vec<ProviderProperty> {
115 std::mem::take(&mut self.r#provider)
116 }
117 fn get_result(&self) -> &[ResultProperty] {
118 self.r#result.as_slice()
119 }
120 fn take_result(&mut self) -> Vec<ResultProperty> {
121 std::mem::take(&mut self.r#result)
122 }
123 fn get_start_time(&self) -> &[StartTimeProperty] {
124 self.r#start_time.as_slice()
125 }
126 fn take_start_time(&mut self) -> Vec<StartTimeProperty> {
127 std::mem::take(&mut self.r#start_time)
128 }
129 fn get_target(&self) -> &[TargetProperty] {
130 self.r#target.as_slice()
131 }
132 fn take_target(&mut self) -> Vec<TargetProperty> {
133 std::mem::take(&mut self.r#target)
134 }
135}
136impl ConsumeActionTrait for DrinkAction {
137 fn get_action_accessibility_requirement(&self) -> &[ActionAccessibilityRequirementProperty] {
138 self.r#action_accessibility_requirement.as_slice()
139 }
140 fn take_action_accessibility_requirement(
141 &mut self,
142 ) -> Vec<ActionAccessibilityRequirementProperty> {
143 std::mem::take(&mut self.r#action_accessibility_requirement)
144 }
145 fn get_expects_acceptance_of(&self) -> &[ExpectsAcceptanceOfProperty] {
146 self.r#expects_acceptance_of.as_slice()
147 }
148 fn take_expects_acceptance_of(&mut self) -> Vec<ExpectsAcceptanceOfProperty> {
149 std::mem::take(&mut self.r#expects_acceptance_of)
150 }
151}
152impl ThingTrait for DrinkAction {
153 fn get_additional_type(&self) -> &[AdditionalTypeProperty] {
154 self.r#additional_type.as_slice()
155 }
156 fn take_additional_type(&mut self) -> Vec<AdditionalTypeProperty> {
157 std::mem::take(&mut self.r#additional_type)
158 }
159 fn get_alternate_name(&self) -> &[AlternateNameProperty] {
160 self.r#alternate_name.as_slice()
161 }
162 fn take_alternate_name(&mut self) -> Vec<AlternateNameProperty> {
163 std::mem::take(&mut self.r#alternate_name)
164 }
165 fn get_description(&self) -> &[DescriptionProperty] {
166 self.r#description.as_slice()
167 }
168 fn take_description(&mut self) -> Vec<DescriptionProperty> {
169 std::mem::take(&mut self.r#description)
170 }
171 fn get_disambiguating_description(&self) -> &[DisambiguatingDescriptionProperty] {
172 self.r#disambiguating_description.as_slice()
173 }
174 fn take_disambiguating_description(&mut self) -> Vec<DisambiguatingDescriptionProperty> {
175 std::mem::take(&mut self.r#disambiguating_description)
176 }
177 fn get_identifier(&self) -> &[IdentifierProperty] {
178 self.r#identifier.as_slice()
179 }
180 fn take_identifier(&mut self) -> Vec<IdentifierProperty> {
181 std::mem::take(&mut self.r#identifier)
182 }
183 fn get_image(&self) -> &[ImageProperty] {
184 self.r#image.as_slice()
185 }
186 fn take_image(&mut self) -> Vec<ImageProperty> {
187 std::mem::take(&mut self.r#image)
188 }
189 fn get_main_entity_of_page(&self) -> &[MainEntityOfPageProperty] {
190 self.r#main_entity_of_page.as_slice()
191 }
192 fn take_main_entity_of_page(&mut self) -> Vec<MainEntityOfPageProperty> {
193 std::mem::take(&mut self.r#main_entity_of_page)
194 }
195 fn get_name(&self) -> &[NameProperty] {
196 self.r#name.as_slice()
197 }
198 fn take_name(&mut self) -> Vec<NameProperty> {
199 std::mem::take(&mut self.r#name)
200 }
201 fn get_potential_action(&self) -> &[PotentialActionProperty] {
202 self.r#potential_action.as_slice()
203 }
204 fn take_potential_action(&mut self) -> Vec<PotentialActionProperty> {
205 std::mem::take(&mut self.r#potential_action)
206 }
207 fn get_same_as(&self) -> &[SameAsProperty] {
208 self.r#same_as.as_slice()
209 }
210 fn take_same_as(&mut self) -> Vec<SameAsProperty> {
211 std::mem::take(&mut self.r#same_as)
212 }
213 fn get_subject_of(&self) -> &[SubjectOfProperty] {
214 self.r#subject_of.as_slice()
215 }
216 fn take_subject_of(&mut self) -> Vec<SubjectOfProperty> {
217 std::mem::take(&mut self.r#subject_of)
218 }
219 fn get_url(&self) -> &[UrlProperty] {
220 self.r#url.as_slice()
221 }
222 fn take_url(&mut self) -> Vec<UrlProperty> {
223 std::mem::take(&mut self.r#url)
224 }
225}
226#[cfg(feature = "serde")]
227mod serde {
228 use std::{fmt, fmt::Formatter};
229
230 use ::serde::{
231 de, de::Visitor, ser::SerializeStruct, Deserialize, Deserializer, Serialize, Serializer,
232 };
233
234 use super::*;
235 impl Serialize for DrinkAction {
236 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
237 where
238 S: Serializer,
239 {
240 let len: usize = [
241 !Vec::is_empty(&self.r#action_status) as usize,
242 !Vec::is_empty(&self.r#agent) as usize,
243 !Vec::is_empty(&self.r#end_time) as usize,
244 !Vec::is_empty(&self.r#error) as usize,
245 !Vec::is_empty(&self.r#instrument) as usize,
246 !Vec::is_empty(&self.r#location) as usize,
247 !Vec::is_empty(&self.r#object) as usize,
248 !Vec::is_empty(&self.r#participant) as usize,
249 !Vec::is_empty(&self.r#provider) as usize,
250 !Vec::is_empty(&self.r#result) as usize,
251 !Vec::is_empty(&self.r#start_time) as usize,
252 !Vec::is_empty(&self.r#target) as usize,
253 !Vec::is_empty(&self.r#action_accessibility_requirement) as usize,
254 !Vec::is_empty(&self.r#expects_acceptance_of) as usize,
255 !Vec::is_empty(&self.r#additional_type) as usize,
256 !Vec::is_empty(&self.r#alternate_name) as usize,
257 !Vec::is_empty(&self.r#description) as usize,
258 !Vec::is_empty(&self.r#disambiguating_description) as usize,
259 !Vec::is_empty(&self.r#identifier) as usize,
260 !Vec::is_empty(&self.r#image) as usize,
261 !Vec::is_empty(&self.r#main_entity_of_page) as usize,
262 !Vec::is_empty(&self.r#name) as usize,
263 !Vec::is_empty(&self.r#potential_action) as usize,
264 !Vec::is_empty(&self.r#same_as) as usize,
265 !Vec::is_empty(&self.r#subject_of) as usize,
266 !Vec::is_empty(&self.r#url) as usize,
267 ]
268 .iter()
269 .sum();
270 let mut serialize_struct =
271 Serializer::serialize_struct(serializer, "DrinkAction", len)?;
272 if !Vec::is_empty(&self.r#action_status) {
273 serialize_struct.serialize_field("actionStatus", {
274 struct SerializeWith<'a>(&'a Vec<ActionStatusProperty>);
275 impl<'a> Serialize for SerializeWith<'a> {
276 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
277 where
278 S: Serializer,
279 {
280 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
281 self.0, serializer,
282 )
283 }
284 }
285 &SerializeWith(&self.r#action_status)
286 })?;
287 } else {
288 serialize_struct.skip_field("actionStatus")?;
289 }
290 if !Vec::is_empty(&self.r#agent) {
291 serialize_struct.serialize_field("agent", {
292 struct SerializeWith<'a>(&'a Vec<AgentProperty>);
293 impl<'a> Serialize for SerializeWith<'a> {
294 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
295 where
296 S: Serializer,
297 {
298 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
299 self.0, serializer,
300 )
301 }
302 }
303 &SerializeWith(&self.r#agent)
304 })?;
305 } else {
306 serialize_struct.skip_field("agent")?;
307 }
308 if !Vec::is_empty(&self.r#end_time) {
309 serialize_struct.serialize_field("endTime", {
310 struct SerializeWith<'a>(&'a Vec<EndTimeProperty>);
311 impl<'a> Serialize for SerializeWith<'a> {
312 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
313 where
314 S: Serializer,
315 {
316 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
317 self.0, serializer,
318 )
319 }
320 }
321 &SerializeWith(&self.r#end_time)
322 })?;
323 } else {
324 serialize_struct.skip_field("endTime")?;
325 }
326 if !Vec::is_empty(&self.r#error) {
327 serialize_struct.serialize_field("error", {
328 struct SerializeWith<'a>(&'a Vec<ErrorProperty>);
329 impl<'a> Serialize for SerializeWith<'a> {
330 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
331 where
332 S: Serializer,
333 {
334 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
335 self.0, serializer,
336 )
337 }
338 }
339 &SerializeWith(&self.r#error)
340 })?;
341 } else {
342 serialize_struct.skip_field("error")?;
343 }
344 if !Vec::is_empty(&self.r#instrument) {
345 serialize_struct.serialize_field("instrument", {
346 struct SerializeWith<'a>(&'a Vec<InstrumentProperty>);
347 impl<'a> Serialize for SerializeWith<'a> {
348 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
349 where
350 S: Serializer,
351 {
352 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
353 self.0, serializer,
354 )
355 }
356 }
357 &SerializeWith(&self.r#instrument)
358 })?;
359 } else {
360 serialize_struct.skip_field("instrument")?;
361 }
362 if !Vec::is_empty(&self.r#location) {
363 serialize_struct.serialize_field("location", {
364 struct SerializeWith<'a>(&'a Vec<LocationProperty>);
365 impl<'a> Serialize for SerializeWith<'a> {
366 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
367 where
368 S: Serializer,
369 {
370 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
371 self.0, serializer,
372 )
373 }
374 }
375 &SerializeWith(&self.r#location)
376 })?;
377 } else {
378 serialize_struct.skip_field("location")?;
379 }
380 if !Vec::is_empty(&self.r#object) {
381 serialize_struct.serialize_field("object", {
382 struct SerializeWith<'a>(&'a Vec<ObjectProperty>);
383 impl<'a> Serialize for SerializeWith<'a> {
384 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
385 where
386 S: Serializer,
387 {
388 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
389 self.0, serializer,
390 )
391 }
392 }
393 &SerializeWith(&self.r#object)
394 })?;
395 } else {
396 serialize_struct.skip_field("object")?;
397 }
398 if !Vec::is_empty(&self.r#participant) {
399 serialize_struct.serialize_field("participant", {
400 struct SerializeWith<'a>(&'a Vec<ParticipantProperty>);
401 impl<'a> Serialize for SerializeWith<'a> {
402 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
403 where
404 S: Serializer,
405 {
406 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
407 self.0, serializer,
408 )
409 }
410 }
411 &SerializeWith(&self.r#participant)
412 })?;
413 } else {
414 serialize_struct.skip_field("participant")?;
415 }
416 if !Vec::is_empty(&self.r#provider) {
417 serialize_struct.serialize_field("provider", {
418 struct SerializeWith<'a>(&'a Vec<ProviderProperty>);
419 impl<'a> Serialize for SerializeWith<'a> {
420 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
421 where
422 S: Serializer,
423 {
424 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
425 self.0, serializer,
426 )
427 }
428 }
429 &SerializeWith(&self.r#provider)
430 })?;
431 } else {
432 serialize_struct.skip_field("provider")?;
433 }
434 if !Vec::is_empty(&self.r#result) {
435 serialize_struct.serialize_field("result", {
436 struct SerializeWith<'a>(&'a Vec<ResultProperty>);
437 impl<'a> Serialize for SerializeWith<'a> {
438 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
439 where
440 S: Serializer,
441 {
442 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
443 self.0, serializer,
444 )
445 }
446 }
447 &SerializeWith(&self.r#result)
448 })?;
449 } else {
450 serialize_struct.skip_field("result")?;
451 }
452 if !Vec::is_empty(&self.r#start_time) {
453 serialize_struct.serialize_field("startTime", {
454 struct SerializeWith<'a>(&'a Vec<StartTimeProperty>);
455 impl<'a> Serialize for SerializeWith<'a> {
456 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
457 where
458 S: Serializer,
459 {
460 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
461 self.0, serializer,
462 )
463 }
464 }
465 &SerializeWith(&self.r#start_time)
466 })?;
467 } else {
468 serialize_struct.skip_field("startTime")?;
469 }
470 if !Vec::is_empty(&self.r#target) {
471 serialize_struct.serialize_field("target", {
472 struct SerializeWith<'a>(&'a Vec<TargetProperty>);
473 impl<'a> Serialize for SerializeWith<'a> {
474 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
475 where
476 S: Serializer,
477 {
478 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
479 self.0, serializer,
480 )
481 }
482 }
483 &SerializeWith(&self.r#target)
484 })?;
485 } else {
486 serialize_struct.skip_field("target")?;
487 }
488 if !Vec::is_empty(&self.r#action_accessibility_requirement) {
489 serialize_struct.serialize_field("actionAccessibilityRequirement", {
490 struct SerializeWith<'a>(&'a Vec<ActionAccessibilityRequirementProperty>);
491 impl<'a> Serialize for SerializeWith<'a> {
492 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
493 where
494 S: Serializer,
495 {
496 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
497 self.0, serializer,
498 )
499 }
500 }
501 &SerializeWith(&self.r#action_accessibility_requirement)
502 })?;
503 } else {
504 serialize_struct.skip_field("actionAccessibilityRequirement")?;
505 }
506 if !Vec::is_empty(&self.r#expects_acceptance_of) {
507 serialize_struct.serialize_field("expectsAcceptanceOf", {
508 struct SerializeWith<'a>(&'a Vec<ExpectsAcceptanceOfProperty>);
509 impl<'a> Serialize for SerializeWith<'a> {
510 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
511 where
512 S: Serializer,
513 {
514 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
515 self.0, serializer,
516 )
517 }
518 }
519 &SerializeWith(&self.r#expects_acceptance_of)
520 })?;
521 } else {
522 serialize_struct.skip_field("expectsAcceptanceOf")?;
523 }
524 if !Vec::is_empty(&self.r#additional_type) {
525 serialize_struct.serialize_field("additionalType", {
526 struct SerializeWith<'a>(&'a Vec<AdditionalTypeProperty>);
527 impl<'a> Serialize for SerializeWith<'a> {
528 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
529 where
530 S: Serializer,
531 {
532 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
533 self.0, serializer,
534 )
535 }
536 }
537 &SerializeWith(&self.r#additional_type)
538 })?;
539 } else {
540 serialize_struct.skip_field("additionalType")?;
541 }
542 if !Vec::is_empty(&self.r#alternate_name) {
543 serialize_struct.serialize_field("alternateName", {
544 struct SerializeWith<'a>(&'a Vec<AlternateNameProperty>);
545 impl<'a> Serialize for SerializeWith<'a> {
546 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
547 where
548 S: Serializer,
549 {
550 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
551 self.0, serializer,
552 )
553 }
554 }
555 &SerializeWith(&self.r#alternate_name)
556 })?;
557 } else {
558 serialize_struct.skip_field("alternateName")?;
559 }
560 if !Vec::is_empty(&self.r#description) {
561 serialize_struct.serialize_field("description", {
562 struct SerializeWith<'a>(&'a Vec<DescriptionProperty>);
563 impl<'a> Serialize for SerializeWith<'a> {
564 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
565 where
566 S: Serializer,
567 {
568 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
569 self.0, serializer,
570 )
571 }
572 }
573 &SerializeWith(&self.r#description)
574 })?;
575 } else {
576 serialize_struct.skip_field("description")?;
577 }
578 if !Vec::is_empty(&self.r#disambiguating_description) {
579 serialize_struct.serialize_field("disambiguatingDescription", {
580 struct SerializeWith<'a>(&'a Vec<DisambiguatingDescriptionProperty>);
581 impl<'a> Serialize for SerializeWith<'a> {
582 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
583 where
584 S: Serializer,
585 {
586 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
587 self.0, serializer,
588 )
589 }
590 }
591 &SerializeWith(&self.r#disambiguating_description)
592 })?;
593 } else {
594 serialize_struct.skip_field("disambiguatingDescription")?;
595 }
596 if !Vec::is_empty(&self.r#identifier) {
597 serialize_struct.serialize_field("identifier", {
598 struct SerializeWith<'a>(&'a Vec<IdentifierProperty>);
599 impl<'a> Serialize for SerializeWith<'a> {
600 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
601 where
602 S: Serializer,
603 {
604 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
605 self.0, serializer,
606 )
607 }
608 }
609 &SerializeWith(&self.r#identifier)
610 })?;
611 } else {
612 serialize_struct.skip_field("identifier")?;
613 }
614 if !Vec::is_empty(&self.r#image) {
615 serialize_struct.serialize_field("image", {
616 struct SerializeWith<'a>(&'a Vec<ImageProperty>);
617 impl<'a> Serialize for SerializeWith<'a> {
618 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
619 where
620 S: Serializer,
621 {
622 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
623 self.0, serializer,
624 )
625 }
626 }
627 &SerializeWith(&self.r#image)
628 })?;
629 } else {
630 serialize_struct.skip_field("image")?;
631 }
632 if !Vec::is_empty(&self.r#main_entity_of_page) {
633 serialize_struct.serialize_field("mainEntityOfPage", {
634 struct SerializeWith<'a>(&'a Vec<MainEntityOfPageProperty>);
635 impl<'a> Serialize for SerializeWith<'a> {
636 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
637 where
638 S: Serializer,
639 {
640 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
641 self.0, serializer,
642 )
643 }
644 }
645 &SerializeWith(&self.r#main_entity_of_page)
646 })?;
647 } else {
648 serialize_struct.skip_field("mainEntityOfPage")?;
649 }
650 if !Vec::is_empty(&self.r#name) {
651 serialize_struct.serialize_field("name", {
652 struct SerializeWith<'a>(&'a Vec<NameProperty>);
653 impl<'a> Serialize for SerializeWith<'a> {
654 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
655 where
656 S: Serializer,
657 {
658 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
659 self.0, serializer,
660 )
661 }
662 }
663 &SerializeWith(&self.r#name)
664 })?;
665 } else {
666 serialize_struct.skip_field("name")?;
667 }
668 if !Vec::is_empty(&self.r#potential_action) {
669 serialize_struct.serialize_field("potentialAction", {
670 struct SerializeWith<'a>(&'a Vec<PotentialActionProperty>);
671 impl<'a> Serialize for SerializeWith<'a> {
672 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
673 where
674 S: Serializer,
675 {
676 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
677 self.0, serializer,
678 )
679 }
680 }
681 &SerializeWith(&self.r#potential_action)
682 })?;
683 } else {
684 serialize_struct.skip_field("potentialAction")?;
685 }
686 if !Vec::is_empty(&self.r#same_as) {
687 serialize_struct.serialize_field("sameAs", {
688 struct SerializeWith<'a>(&'a Vec<SameAsProperty>);
689 impl<'a> Serialize for SerializeWith<'a> {
690 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
691 where
692 S: Serializer,
693 {
694 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
695 self.0, serializer,
696 )
697 }
698 }
699 &SerializeWith(&self.r#same_as)
700 })?;
701 } else {
702 serialize_struct.skip_field("sameAs")?;
703 }
704 if !Vec::is_empty(&self.r#subject_of) {
705 serialize_struct.serialize_field("subjectOf", {
706 struct SerializeWith<'a>(&'a Vec<SubjectOfProperty>);
707 impl<'a> Serialize for SerializeWith<'a> {
708 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
709 where
710 S: Serializer,
711 {
712 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
713 self.0, serializer,
714 )
715 }
716 }
717 &SerializeWith(&self.r#subject_of)
718 })?;
719 } else {
720 serialize_struct.skip_field("subjectOf")?;
721 }
722 if !Vec::is_empty(&self.r#url) {
723 serialize_struct.serialize_field("url", {
724 struct SerializeWith<'a>(&'a Vec<UrlProperty>);
725 impl<'a> Serialize for SerializeWith<'a> {
726 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
727 where
728 S: Serializer,
729 {
730 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
731 self.0, serializer,
732 )
733 }
734 }
735 &SerializeWith(&self.r#url)
736 })?;
737 } else {
738 serialize_struct.skip_field("url")?;
739 }
740 serialize_struct.end()
741 }
742 }
743 impl<'de> Deserialize<'de> for DrinkAction {
744 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
745 where
746 D: Deserializer<'de>,
747 {
748 enum Field {
749 ActionStatus,
750 Agent,
751 EndTime,
752 Error,
753 Instrument,
754 Location,
755 Object,
756 Participant,
757 Provider,
758 Result,
759 StartTime,
760 Target,
761 ActionAccessibilityRequirement,
762 ExpectsAcceptanceOf,
763 AdditionalType,
764 AlternateName,
765 Description,
766 DisambiguatingDescription,
767 Identifier,
768 Image,
769 MainEntityOfPage,
770 Name,
771 PotentialAction,
772 SameAs,
773 SubjectOf,
774 Url,
775 Ignore,
776 }
777 struct FieldVisitor;
778 impl<'de> Visitor<'de> for FieldVisitor {
779 type Value = Field;
780 fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
781 formatter.write_str("field identifier")
782 }
783 fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
784 where
785 E: de::Error,
786 {
787 match value {
788 "actionStatus" => Ok(Field::ActionStatus),
789 "agent" => Ok(Field::Agent),
790 "endTime" => Ok(Field::EndTime),
791 "error" => Ok(Field::Error),
792 "instrument" => Ok(Field::Instrument),
793 "location" => Ok(Field::Location),
794 "object" => Ok(Field::Object),
795 "participant" => Ok(Field::Participant),
796 "provider" => Ok(Field::Provider),
797 "result" => Ok(Field::Result),
798 "startTime" => Ok(Field::StartTime),
799 "target" => Ok(Field::Target),
800 "actionAccessibilityRequirement" => {
801 Ok(Field::ActionAccessibilityRequirement)
802 }
803 "expectsAcceptanceOf" => Ok(Field::ExpectsAcceptanceOf),
804 "additionalType" => Ok(Field::AdditionalType),
805 "alternateName" => Ok(Field::AlternateName),
806 "description" => Ok(Field::Description),
807 "disambiguatingDescription" => Ok(Field::DisambiguatingDescription),
808 "identifier" => Ok(Field::Identifier),
809 "image" => Ok(Field::Image),
810 "mainEntityOfPage" => Ok(Field::MainEntityOfPage),
811 "name" => Ok(Field::Name),
812 "potentialAction" => Ok(Field::PotentialAction),
813 "sameAs" => Ok(Field::SameAs),
814 "subjectOf" => Ok(Field::SubjectOf),
815 "url" => Ok(Field::Url),
816 "id" | "type" => Ok(Field::Ignore),
817 _ => Err(de::Error::unknown_field(value, FIELDS)),
818 }
819 }
820 fn visit_bytes<E>(self, value: &[u8]) -> Result<Self::Value, E>
821 where
822 E: de::Error,
823 {
824 match value {
825 b"actionStatus" => Ok(Field::ActionStatus),
826 b"agent" => Ok(Field::Agent),
827 b"endTime" => Ok(Field::EndTime),
828 b"error" => Ok(Field::Error),
829 b"instrument" => Ok(Field::Instrument),
830 b"location" => Ok(Field::Location),
831 b"object" => Ok(Field::Object),
832 b"participant" => Ok(Field::Participant),
833 b"provider" => Ok(Field::Provider),
834 b"result" => Ok(Field::Result),
835 b"startTime" => Ok(Field::StartTime),
836 b"target" => Ok(Field::Target),
837 b"actionAccessibilityRequirement" => {
838 Ok(Field::ActionAccessibilityRequirement)
839 }
840 b"expectsAcceptanceOf" => Ok(Field::ExpectsAcceptanceOf),
841 b"additionalType" => Ok(Field::AdditionalType),
842 b"alternateName" => Ok(Field::AlternateName),
843 b"description" => Ok(Field::Description),
844 b"disambiguatingDescription" => Ok(Field::DisambiguatingDescription),
845 b"identifier" => Ok(Field::Identifier),
846 b"image" => Ok(Field::Image),
847 b"mainEntityOfPage" => Ok(Field::MainEntityOfPage),
848 b"name" => Ok(Field::Name),
849 b"potentialAction" => Ok(Field::PotentialAction),
850 b"sameAs" => Ok(Field::SameAs),
851 b"subjectOf" => Ok(Field::SubjectOf),
852 b"url" => Ok(Field::Url),
853 b"id" | b"type" => Ok(Field::Ignore),
854 _ => {
855 let value = &String::from_utf8_lossy(value);
856 Err(de::Error::unknown_field(value, FIELDS))
857 }
858 }
859 }
860 }
861 impl<'de> Deserialize<'de> for Field {
862 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
863 where
864 D: Deserializer<'de>,
865 {
866 deserializer.deserialize_identifier(FieldVisitor)
867 }
868 }
869 struct ClassVisitor;
870 impl<'de> Visitor<'de> for ClassVisitor {
871 type Value = DrinkAction;
872 fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
873 formatter.write_str("schema.org schema DrinkAction")
874 }
875 fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error>
876 where
877 A: de::MapAccess<'de>,
878 {
879 let mut r#action_status_property = None;
880 let mut r#agent_property = None;
881 let mut r#end_time_property = None;
882 let mut r#error_property = None;
883 let mut r#instrument_property = None;
884 let mut r#location_property = None;
885 let mut r#object_property = None;
886 let mut r#participant_property = None;
887 let mut r#provider_property = None;
888 let mut r#result_property = None;
889 let mut r#start_time_property = None;
890 let mut r#target_property = None;
891 let mut r#action_accessibility_requirement_property = None;
892 let mut r#expects_acceptance_of_property = None;
893 let mut r#additional_type_property = None;
894 let mut r#alternate_name_property = None;
895 let mut r#description_property = None;
896 let mut r#disambiguating_description_property = None;
897 let mut r#identifier_property = None;
898 let mut r#image_property = None;
899 let mut r#main_entity_of_page_property = None;
900 let mut r#name_property = None;
901 let mut r#potential_action_property = None;
902 let mut r#same_as_property = None;
903 let mut r#subject_of_property = None;
904 let mut r#url_property = None;
905 while let Some(key) = map.next_key::<Field>()? {
906 match key {
907 Field::ActionStatus => {
908 if r#action_status_property.is_some() {
909 return Err(<A::Error as de::Error>::duplicate_field(
910 "actionStatus",
911 ));
912 }
913 r#action_status_property = Some({
914 struct DeserializeWith(Vec<ActionStatusProperty>);
915 impl<'de> Deserialize<'de> for DeserializeWith {
916 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
917 where
918 D: Deserializer<'de>,
919 {
920 Ok(DeserializeWith(serde_with::As::<
921 serde_with::OneOrMany<serde_with::Same>,
922 >::deserialize(deserializer)?))
923 }
924 }
925 match map.next_value::<DeserializeWith>() {
926 Ok(deserialize_with) => deserialize_with.0,
927 Err(err) => {
928 return Err(err);
929 }
930 }
931 });
932 }
933 Field::Agent => {
934 if r#agent_property.is_some() {
935 return Err(<A::Error as de::Error>::duplicate_field("agent"));
936 }
937 r#agent_property = Some({
938 struct DeserializeWith(Vec<AgentProperty>);
939 impl<'de> Deserialize<'de> for DeserializeWith {
940 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
941 where
942 D: Deserializer<'de>,
943 {
944 Ok(DeserializeWith(serde_with::As::<
945 serde_with::OneOrMany<serde_with::Same>,
946 >::deserialize(deserializer)?))
947 }
948 }
949 match map.next_value::<DeserializeWith>() {
950 Ok(deserialize_with) => deserialize_with.0,
951 Err(err) => {
952 return Err(err);
953 }
954 }
955 });
956 }
957 Field::EndTime => {
958 if r#end_time_property.is_some() {
959 return Err(<A::Error as de::Error>::duplicate_field(
960 "endTime",
961 ));
962 }
963 r#end_time_property = Some({
964 struct DeserializeWith(Vec<EndTimeProperty>);
965 impl<'de> Deserialize<'de> for DeserializeWith {
966 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
967 where
968 D: Deserializer<'de>,
969 {
970 Ok(DeserializeWith(serde_with::As::<
971 serde_with::OneOrMany<serde_with::Same>,
972 >::deserialize(deserializer)?))
973 }
974 }
975 match map.next_value::<DeserializeWith>() {
976 Ok(deserialize_with) => deserialize_with.0,
977 Err(err) => {
978 return Err(err);
979 }
980 }
981 });
982 }
983 Field::Error => {
984 if r#error_property.is_some() {
985 return Err(<A::Error as de::Error>::duplicate_field("error"));
986 }
987 r#error_property = Some({
988 struct DeserializeWith(Vec<ErrorProperty>);
989 impl<'de> Deserialize<'de> for DeserializeWith {
990 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
991 where
992 D: Deserializer<'de>,
993 {
994 Ok(DeserializeWith(serde_with::As::<
995 serde_with::OneOrMany<serde_with::Same>,
996 >::deserialize(deserializer)?))
997 }
998 }
999 match map.next_value::<DeserializeWith>() {
1000 Ok(deserialize_with) => deserialize_with.0,
1001 Err(err) => {
1002 return Err(err);
1003 }
1004 }
1005 });
1006 }
1007 Field::Instrument => {
1008 if r#instrument_property.is_some() {
1009 return Err(<A::Error as de::Error>::duplicate_field(
1010 "instrument",
1011 ));
1012 }
1013 r#instrument_property = Some({
1014 struct DeserializeWith(Vec<InstrumentProperty>);
1015 impl<'de> Deserialize<'de> for DeserializeWith {
1016 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1017 where
1018 D: Deserializer<'de>,
1019 {
1020 Ok(DeserializeWith(serde_with::As::<
1021 serde_with::OneOrMany<serde_with::Same>,
1022 >::deserialize(deserializer)?))
1023 }
1024 }
1025 match map.next_value::<DeserializeWith>() {
1026 Ok(deserialize_with) => deserialize_with.0,
1027 Err(err) => {
1028 return Err(err);
1029 }
1030 }
1031 });
1032 }
1033 Field::Location => {
1034 if r#location_property.is_some() {
1035 return Err(<A::Error as de::Error>::duplicate_field(
1036 "location",
1037 ));
1038 }
1039 r#location_property = Some({
1040 struct DeserializeWith(Vec<LocationProperty>);
1041 impl<'de> Deserialize<'de> for DeserializeWith {
1042 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1043 where
1044 D: Deserializer<'de>,
1045 {
1046 Ok(DeserializeWith(serde_with::As::<
1047 serde_with::OneOrMany<serde_with::Same>,
1048 >::deserialize(deserializer)?))
1049 }
1050 }
1051 match map.next_value::<DeserializeWith>() {
1052 Ok(deserialize_with) => deserialize_with.0,
1053 Err(err) => {
1054 return Err(err);
1055 }
1056 }
1057 });
1058 }
1059 Field::Object => {
1060 if r#object_property.is_some() {
1061 return Err(<A::Error as de::Error>::duplicate_field("object"));
1062 }
1063 r#object_property = Some({
1064 struct DeserializeWith(Vec<ObjectProperty>);
1065 impl<'de> Deserialize<'de> for DeserializeWith {
1066 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1067 where
1068 D: Deserializer<'de>,
1069 {
1070 Ok(DeserializeWith(serde_with::As::<
1071 serde_with::OneOrMany<serde_with::Same>,
1072 >::deserialize(deserializer)?))
1073 }
1074 }
1075 match map.next_value::<DeserializeWith>() {
1076 Ok(deserialize_with) => deserialize_with.0,
1077 Err(err) => {
1078 return Err(err);
1079 }
1080 }
1081 });
1082 }
1083 Field::Participant => {
1084 if r#participant_property.is_some() {
1085 return Err(<A::Error as de::Error>::duplicate_field(
1086 "participant",
1087 ));
1088 }
1089 r#participant_property = Some({
1090 struct DeserializeWith(Vec<ParticipantProperty>);
1091 impl<'de> Deserialize<'de> for DeserializeWith {
1092 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1093 where
1094 D: Deserializer<'de>,
1095 {
1096 Ok(DeserializeWith(serde_with::As::<
1097 serde_with::OneOrMany<serde_with::Same>,
1098 >::deserialize(deserializer)?))
1099 }
1100 }
1101 match map.next_value::<DeserializeWith>() {
1102 Ok(deserialize_with) => deserialize_with.0,
1103 Err(err) => {
1104 return Err(err);
1105 }
1106 }
1107 });
1108 }
1109 Field::Provider => {
1110 if r#provider_property.is_some() {
1111 return Err(<A::Error as de::Error>::duplicate_field(
1112 "provider",
1113 ));
1114 }
1115 r#provider_property = Some({
1116 struct DeserializeWith(Vec<ProviderProperty>);
1117 impl<'de> Deserialize<'de> for DeserializeWith {
1118 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1119 where
1120 D: Deserializer<'de>,
1121 {
1122 Ok(DeserializeWith(serde_with::As::<
1123 serde_with::OneOrMany<serde_with::Same>,
1124 >::deserialize(deserializer)?))
1125 }
1126 }
1127 match map.next_value::<DeserializeWith>() {
1128 Ok(deserialize_with) => deserialize_with.0,
1129 Err(err) => {
1130 return Err(err);
1131 }
1132 }
1133 });
1134 }
1135 Field::Result => {
1136 if r#result_property.is_some() {
1137 return Err(<A::Error as de::Error>::duplicate_field("result"));
1138 }
1139 r#result_property = Some({
1140 struct DeserializeWith(Vec<ResultProperty>);
1141 impl<'de> Deserialize<'de> for DeserializeWith {
1142 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1143 where
1144 D: Deserializer<'de>,
1145 {
1146 Ok(DeserializeWith(serde_with::As::<
1147 serde_with::OneOrMany<serde_with::Same>,
1148 >::deserialize(deserializer)?))
1149 }
1150 }
1151 match map.next_value::<DeserializeWith>() {
1152 Ok(deserialize_with) => deserialize_with.0,
1153 Err(err) => {
1154 return Err(err);
1155 }
1156 }
1157 });
1158 }
1159 Field::StartTime => {
1160 if r#start_time_property.is_some() {
1161 return Err(<A::Error as de::Error>::duplicate_field(
1162 "startTime",
1163 ));
1164 }
1165 r#start_time_property = Some({
1166 struct DeserializeWith(Vec<StartTimeProperty>);
1167 impl<'de> Deserialize<'de> for DeserializeWith {
1168 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1169 where
1170 D: Deserializer<'de>,
1171 {
1172 Ok(DeserializeWith(serde_with::As::<
1173 serde_with::OneOrMany<serde_with::Same>,
1174 >::deserialize(deserializer)?))
1175 }
1176 }
1177 match map.next_value::<DeserializeWith>() {
1178 Ok(deserialize_with) => deserialize_with.0,
1179 Err(err) => {
1180 return Err(err);
1181 }
1182 }
1183 });
1184 }
1185 Field::Target => {
1186 if r#target_property.is_some() {
1187 return Err(<A::Error as de::Error>::duplicate_field("target"));
1188 }
1189 r#target_property = Some({
1190 struct DeserializeWith(Vec<TargetProperty>);
1191 impl<'de> Deserialize<'de> for DeserializeWith {
1192 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1193 where
1194 D: Deserializer<'de>,
1195 {
1196 Ok(DeserializeWith(serde_with::As::<
1197 serde_with::OneOrMany<serde_with::Same>,
1198 >::deserialize(deserializer)?))
1199 }
1200 }
1201 match map.next_value::<DeserializeWith>() {
1202 Ok(deserialize_with) => deserialize_with.0,
1203 Err(err) => {
1204 return Err(err);
1205 }
1206 }
1207 });
1208 }
1209 Field::ActionAccessibilityRequirement => {
1210 if r#action_accessibility_requirement_property.is_some() {
1211 return Err(<A::Error as de::Error>::duplicate_field(
1212 "actionAccessibilityRequirement",
1213 ));
1214 }
1215 r#action_accessibility_requirement_property = Some({
1216 struct DeserializeWith(
1217 Vec<ActionAccessibilityRequirementProperty>,
1218 );
1219 impl<'de> Deserialize<'de> for DeserializeWith {
1220 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1221 where
1222 D: Deserializer<'de>,
1223 {
1224 Ok(DeserializeWith(serde_with::As::<
1225 serde_with::OneOrMany<serde_with::Same>,
1226 >::deserialize(deserializer)?))
1227 }
1228 }
1229 match map.next_value::<DeserializeWith>() {
1230 Ok(deserialize_with) => deserialize_with.0,
1231 Err(err) => {
1232 return Err(err);
1233 }
1234 }
1235 });
1236 }
1237 Field::ExpectsAcceptanceOf => {
1238 if r#expects_acceptance_of_property.is_some() {
1239 return Err(<A::Error as de::Error>::duplicate_field(
1240 "expectsAcceptanceOf",
1241 ));
1242 }
1243 r#expects_acceptance_of_property = Some({
1244 struct DeserializeWith(Vec<ExpectsAcceptanceOfProperty>);
1245 impl<'de> Deserialize<'de> for DeserializeWith {
1246 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1247 where
1248 D: Deserializer<'de>,
1249 {
1250 Ok(DeserializeWith(serde_with::As::<
1251 serde_with::OneOrMany<serde_with::Same>,
1252 >::deserialize(deserializer)?))
1253 }
1254 }
1255 match map.next_value::<DeserializeWith>() {
1256 Ok(deserialize_with) => deserialize_with.0,
1257 Err(err) => {
1258 return Err(err);
1259 }
1260 }
1261 });
1262 }
1263 Field::AdditionalType => {
1264 if r#additional_type_property.is_some() {
1265 return Err(<A::Error as de::Error>::duplicate_field(
1266 "additionalType",
1267 ));
1268 }
1269 r#additional_type_property = Some({
1270 struct DeserializeWith(Vec<AdditionalTypeProperty>);
1271 impl<'de> Deserialize<'de> for DeserializeWith {
1272 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1273 where
1274 D: Deserializer<'de>,
1275 {
1276 Ok(DeserializeWith(serde_with::As::<
1277 serde_with::OneOrMany<serde_with::Same>,
1278 >::deserialize(deserializer)?))
1279 }
1280 }
1281 match map.next_value::<DeserializeWith>() {
1282 Ok(deserialize_with) => deserialize_with.0,
1283 Err(err) => {
1284 return Err(err);
1285 }
1286 }
1287 });
1288 }
1289 Field::AlternateName => {
1290 if r#alternate_name_property.is_some() {
1291 return Err(<A::Error as de::Error>::duplicate_field(
1292 "alternateName",
1293 ));
1294 }
1295 r#alternate_name_property = Some({
1296 struct DeserializeWith(Vec<AlternateNameProperty>);
1297 impl<'de> Deserialize<'de> for DeserializeWith {
1298 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1299 where
1300 D: Deserializer<'de>,
1301 {
1302 Ok(DeserializeWith(serde_with::As::<
1303 serde_with::OneOrMany<serde_with::Same>,
1304 >::deserialize(deserializer)?))
1305 }
1306 }
1307 match map.next_value::<DeserializeWith>() {
1308 Ok(deserialize_with) => deserialize_with.0,
1309 Err(err) => {
1310 return Err(err);
1311 }
1312 }
1313 });
1314 }
1315 Field::Description => {
1316 if r#description_property.is_some() {
1317 return Err(<A::Error as de::Error>::duplicate_field(
1318 "description",
1319 ));
1320 }
1321 r#description_property = Some({
1322 struct DeserializeWith(Vec<DescriptionProperty>);
1323 impl<'de> Deserialize<'de> for DeserializeWith {
1324 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1325 where
1326 D: Deserializer<'de>,
1327 {
1328 Ok(DeserializeWith(serde_with::As::<
1329 serde_with::OneOrMany<serde_with::Same>,
1330 >::deserialize(deserializer)?))
1331 }
1332 }
1333 match map.next_value::<DeserializeWith>() {
1334 Ok(deserialize_with) => deserialize_with.0,
1335 Err(err) => {
1336 return Err(err);
1337 }
1338 }
1339 });
1340 }
1341 Field::DisambiguatingDescription => {
1342 if r#disambiguating_description_property.is_some() {
1343 return Err(<A::Error as de::Error>::duplicate_field(
1344 "disambiguatingDescription",
1345 ));
1346 }
1347 r#disambiguating_description_property = Some({
1348 struct DeserializeWith(Vec<DisambiguatingDescriptionProperty>);
1349 impl<'de> Deserialize<'de> for DeserializeWith {
1350 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1351 where
1352 D: Deserializer<'de>,
1353 {
1354 Ok(DeserializeWith(serde_with::As::<
1355 serde_with::OneOrMany<serde_with::Same>,
1356 >::deserialize(deserializer)?))
1357 }
1358 }
1359 match map.next_value::<DeserializeWith>() {
1360 Ok(deserialize_with) => deserialize_with.0,
1361 Err(err) => {
1362 return Err(err);
1363 }
1364 }
1365 });
1366 }
1367 Field::Identifier => {
1368 if r#identifier_property.is_some() {
1369 return Err(<A::Error as de::Error>::duplicate_field(
1370 "identifier",
1371 ));
1372 }
1373 r#identifier_property = Some({
1374 struct DeserializeWith(Vec<IdentifierProperty>);
1375 impl<'de> Deserialize<'de> for DeserializeWith {
1376 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1377 where
1378 D: Deserializer<'de>,
1379 {
1380 Ok(DeserializeWith(serde_with::As::<
1381 serde_with::OneOrMany<serde_with::Same>,
1382 >::deserialize(deserializer)?))
1383 }
1384 }
1385 match map.next_value::<DeserializeWith>() {
1386 Ok(deserialize_with) => deserialize_with.0,
1387 Err(err) => {
1388 return Err(err);
1389 }
1390 }
1391 });
1392 }
1393 Field::Image => {
1394 if r#image_property.is_some() {
1395 return Err(<A::Error as de::Error>::duplicate_field("image"));
1396 }
1397 r#image_property = Some({
1398 struct DeserializeWith(Vec<ImageProperty>);
1399 impl<'de> Deserialize<'de> for DeserializeWith {
1400 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1401 where
1402 D: Deserializer<'de>,
1403 {
1404 Ok(DeserializeWith(serde_with::As::<
1405 serde_with::OneOrMany<serde_with::Same>,
1406 >::deserialize(deserializer)?))
1407 }
1408 }
1409 match map.next_value::<DeserializeWith>() {
1410 Ok(deserialize_with) => deserialize_with.0,
1411 Err(err) => {
1412 return Err(err);
1413 }
1414 }
1415 });
1416 }
1417 Field::MainEntityOfPage => {
1418 if r#main_entity_of_page_property.is_some() {
1419 return Err(<A::Error as de::Error>::duplicate_field(
1420 "mainEntityOfPage",
1421 ));
1422 }
1423 r#main_entity_of_page_property = Some({
1424 struct DeserializeWith(Vec<MainEntityOfPageProperty>);
1425 impl<'de> Deserialize<'de> for DeserializeWith {
1426 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1427 where
1428 D: Deserializer<'de>,
1429 {
1430 Ok(DeserializeWith(serde_with::As::<
1431 serde_with::OneOrMany<serde_with::Same>,
1432 >::deserialize(deserializer)?))
1433 }
1434 }
1435 match map.next_value::<DeserializeWith>() {
1436 Ok(deserialize_with) => deserialize_with.0,
1437 Err(err) => {
1438 return Err(err);
1439 }
1440 }
1441 });
1442 }
1443 Field::Name => {
1444 if r#name_property.is_some() {
1445 return Err(<A::Error as de::Error>::duplicate_field("name"));
1446 }
1447 r#name_property = Some({
1448 struct DeserializeWith(Vec<NameProperty>);
1449 impl<'de> Deserialize<'de> for DeserializeWith {
1450 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1451 where
1452 D: Deserializer<'de>,
1453 {
1454 Ok(DeserializeWith(serde_with::As::<
1455 serde_with::OneOrMany<serde_with::Same>,
1456 >::deserialize(deserializer)?))
1457 }
1458 }
1459 match map.next_value::<DeserializeWith>() {
1460 Ok(deserialize_with) => deserialize_with.0,
1461 Err(err) => {
1462 return Err(err);
1463 }
1464 }
1465 });
1466 }
1467 Field::PotentialAction => {
1468 if r#potential_action_property.is_some() {
1469 return Err(<A::Error as de::Error>::duplicate_field(
1470 "potentialAction",
1471 ));
1472 }
1473 r#potential_action_property = Some({
1474 struct DeserializeWith(Vec<PotentialActionProperty>);
1475 impl<'de> Deserialize<'de> for DeserializeWith {
1476 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1477 where
1478 D: Deserializer<'de>,
1479 {
1480 Ok(DeserializeWith(serde_with::As::<
1481 serde_with::OneOrMany<serde_with::Same>,
1482 >::deserialize(deserializer)?))
1483 }
1484 }
1485 match map.next_value::<DeserializeWith>() {
1486 Ok(deserialize_with) => deserialize_with.0,
1487 Err(err) => {
1488 return Err(err);
1489 }
1490 }
1491 });
1492 }
1493 Field::SameAs => {
1494 if r#same_as_property.is_some() {
1495 return Err(<A::Error as de::Error>::duplicate_field("sameAs"));
1496 }
1497 r#same_as_property = Some({
1498 struct DeserializeWith(Vec<SameAsProperty>);
1499 impl<'de> Deserialize<'de> for DeserializeWith {
1500 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1501 where
1502 D: Deserializer<'de>,
1503 {
1504 Ok(DeserializeWith(serde_with::As::<
1505 serde_with::OneOrMany<serde_with::Same>,
1506 >::deserialize(deserializer)?))
1507 }
1508 }
1509 match map.next_value::<DeserializeWith>() {
1510 Ok(deserialize_with) => deserialize_with.0,
1511 Err(err) => {
1512 return Err(err);
1513 }
1514 }
1515 });
1516 }
1517 Field::SubjectOf => {
1518 if r#subject_of_property.is_some() {
1519 return Err(<A::Error as de::Error>::duplicate_field(
1520 "subjectOf",
1521 ));
1522 }
1523 r#subject_of_property = Some({
1524 struct DeserializeWith(Vec<SubjectOfProperty>);
1525 impl<'de> Deserialize<'de> for DeserializeWith {
1526 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1527 where
1528 D: Deserializer<'de>,
1529 {
1530 Ok(DeserializeWith(serde_with::As::<
1531 serde_with::OneOrMany<serde_with::Same>,
1532 >::deserialize(deserializer)?))
1533 }
1534 }
1535 match map.next_value::<DeserializeWith>() {
1536 Ok(deserialize_with) => deserialize_with.0,
1537 Err(err) => {
1538 return Err(err);
1539 }
1540 }
1541 });
1542 }
1543 Field::Url => {
1544 if r#url_property.is_some() {
1545 return Err(<A::Error as de::Error>::duplicate_field("url"));
1546 }
1547 r#url_property = Some({
1548 struct DeserializeWith(Vec<UrlProperty>);
1549 impl<'de> Deserialize<'de> for DeserializeWith {
1550 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1551 where
1552 D: Deserializer<'de>,
1553 {
1554 Ok(DeserializeWith(serde_with::As::<
1555 serde_with::OneOrMany<serde_with::Same>,
1556 >::deserialize(deserializer)?))
1557 }
1558 }
1559 match map.next_value::<DeserializeWith>() {
1560 Ok(deserialize_with) => deserialize_with.0,
1561 Err(err) => {
1562 return Err(err);
1563 }
1564 }
1565 });
1566 }
1567 Field::Ignore => {
1568 let _ = map.next_value::<de::IgnoredAny>()?;
1569 }
1570 }
1571 }
1572 Ok(DrinkAction {
1573 r#action_status: r#action_status_property.unwrap_or_default(),
1574 r#agent: r#agent_property.unwrap_or_default(),
1575 r#end_time: r#end_time_property.unwrap_or_default(),
1576 r#error: r#error_property.unwrap_or_default(),
1577 r#instrument: r#instrument_property.unwrap_or_default(),
1578 r#location: r#location_property.unwrap_or_default(),
1579 r#object: r#object_property.unwrap_or_default(),
1580 r#participant: r#participant_property.unwrap_or_default(),
1581 r#provider: r#provider_property.unwrap_or_default(),
1582 r#result: r#result_property.unwrap_or_default(),
1583 r#start_time: r#start_time_property.unwrap_or_default(),
1584 r#target: r#target_property.unwrap_or_default(),
1585 r#action_accessibility_requirement:
1586 r#action_accessibility_requirement_property.unwrap_or_default(),
1587 r#expects_acceptance_of: r#expects_acceptance_of_property
1588 .unwrap_or_default(),
1589 r#additional_type: r#additional_type_property.unwrap_or_default(),
1590 r#alternate_name: r#alternate_name_property.unwrap_or_default(),
1591 r#description: r#description_property.unwrap_or_default(),
1592 r#disambiguating_description: r#disambiguating_description_property
1593 .unwrap_or_default(),
1594 r#identifier: r#identifier_property.unwrap_or_default(),
1595 r#image: r#image_property.unwrap_or_default(),
1596 r#main_entity_of_page: r#main_entity_of_page_property.unwrap_or_default(),
1597 r#name: r#name_property.unwrap_or_default(),
1598 r#potential_action: r#potential_action_property.unwrap_or_default(),
1599 r#same_as: r#same_as_property.unwrap_or_default(),
1600 r#subject_of: r#subject_of_property.unwrap_or_default(),
1601 r#url: r#url_property.unwrap_or_default(),
1602 })
1603 }
1604 }
1605 const FIELDS: &[&str] = &[
1606 "actionStatus",
1607 "agent",
1608 "endTime",
1609 "error",
1610 "instrument",
1611 "location",
1612 "object",
1613 "participant",
1614 "provider",
1615 "result",
1616 "startTime",
1617 "target",
1618 "actionAccessibilityRequirement",
1619 "expectsAcceptanceOf",
1620 "additionalType",
1621 "alternateName",
1622 "description",
1623 "disambiguatingDescription",
1624 "identifier",
1625 "image",
1626 "mainEntityOfPage",
1627 "name",
1628 "potentialAction",
1629 "sameAs",
1630 "subjectOf",
1631 "url",
1632 ];
1633 deserializer.deserialize_struct("DrinkAction", FIELDS, ClassVisitor)
1634 }
1635 }
1636}