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