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