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