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