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