schema_org_types/schemas/classes/
social_event.rs

1use super::*;
2/// <https://schema.org/SocialEvent>
3#[cfg_attr(feature = "derive-debug", derive(Debug))]
4#[cfg_attr(feature = "derive-clone", derive(Clone))]
5pub struct SocialEvent {
6	/// <https://schema.org/about>
7	pub r#about: Vec<AboutProperty>,
8	/// <https://schema.org/actor>
9	pub r#actor: Vec<ActorProperty>,
10	/// <https://schema.org/aggregateRating>
11	pub r#aggregate_rating: Vec<AggregateRatingProperty>,
12	/// <https://schema.org/attendee>
13	pub r#attendee: Vec<AttendeeProperty>,
14	/// <https://schema.org/attendees>
15	#[deprecated = "This schema is superseded by <https://schema.org/attendee>."]
16	pub r#attendees: Vec<AttendeesProperty>,
17	/// <https://schema.org/audience>
18	pub r#audience: Vec<AudienceProperty>,
19	/// <https://schema.org/composer>
20	pub r#composer: Vec<ComposerProperty>,
21	/// <https://schema.org/contributor>
22	pub r#contributor: Vec<ContributorProperty>,
23	/// <https://schema.org/director>
24	pub r#director: Vec<DirectorProperty>,
25	/// <https://schema.org/doorTime>
26	pub r#door_time: Vec<DoorTimeProperty>,
27	/// <https://schema.org/duration>
28	pub r#duration: Vec<DurationProperty>,
29	/// <https://schema.org/endDate>
30	pub r#end_date: Vec<EndDateProperty>,
31	/// <https://schema.org/eventAttendanceMode>
32	pub r#event_attendance_mode: Vec<EventAttendanceModeProperty>,
33	/// <https://schema.org/eventSchedule>
34	pub r#event_schedule: Vec<EventScheduleProperty>,
35	/// <https://schema.org/eventStatus>
36	pub r#event_status: Vec<EventStatusProperty>,
37	/// <https://schema.org/funder>
38	pub r#funder: Vec<FunderProperty>,
39	/// <https://schema.org/funding>
40	pub r#funding: Vec<FundingProperty>,
41	/// <https://schema.org/inLanguage>
42	pub r#in_language: Vec<InLanguageProperty>,
43	/// <https://schema.org/isAccessibleForFree>
44	pub r#is_accessible_for_free: Vec<IsAccessibleForFreeProperty>,
45	/// <https://schema.org/keywords>
46	pub r#keywords: Vec<KeywordsProperty>,
47	/// <https://schema.org/location>
48	pub r#location: Vec<LocationProperty>,
49	/// <https://schema.org/maximumAttendeeCapacity>
50	pub r#maximum_attendee_capacity: Vec<MaximumAttendeeCapacityProperty>,
51	/// <https://schema.org/maximumPhysicalAttendeeCapacity>
52	pub r#maximum_physical_attendee_capacity: Vec<MaximumPhysicalAttendeeCapacityProperty>,
53	/// <https://schema.org/maximumVirtualAttendeeCapacity>
54	pub r#maximum_virtual_attendee_capacity: Vec<MaximumVirtualAttendeeCapacityProperty>,
55	/// <https://schema.org/offers>
56	pub r#offers: Vec<OffersProperty>,
57	/// <https://schema.org/organizer>
58	pub r#organizer: Vec<OrganizerProperty>,
59	/// <https://schema.org/performer>
60	pub r#performer: Vec<PerformerProperty>,
61	/// <https://schema.org/performers>
62	#[deprecated = "This schema is superseded by <https://schema.org/performer>."]
63	pub r#performers: Vec<PerformersProperty>,
64	/// <https://schema.org/previousStartDate>
65	pub r#previous_start_date: Vec<PreviousStartDateProperty>,
66	/// <https://schema.org/recordedIn>
67	pub r#recorded_in: Vec<RecordedInProperty>,
68	/// <https://schema.org/remainingAttendeeCapacity>
69	pub r#remaining_attendee_capacity: Vec<RemainingAttendeeCapacityProperty>,
70	/// <https://schema.org/review>
71	pub r#review: Vec<ReviewProperty>,
72	/// <https://schema.org/sponsor>
73	pub r#sponsor: Vec<SponsorProperty>,
74	/// <https://schema.org/startDate>
75	pub r#start_date: Vec<StartDateProperty>,
76	/// <https://schema.org/subEvent>
77	pub r#sub_event: Vec<SubEventProperty>,
78	/// <https://schema.org/subEvents>
79	#[deprecated = "This schema is superseded by <https://schema.org/subEvent>."]
80	pub r#sub_events: Vec<SubEventsProperty>,
81	/// <https://schema.org/superEvent>
82	pub r#super_event: Vec<SuperEventProperty>,
83	/// <https://schema.org/translator>
84	pub r#translator: Vec<TranslatorProperty>,
85	/// <https://schema.org/typicalAgeRange>
86	pub r#typical_age_range: Vec<TypicalAgeRangeProperty>,
87	/// <https://schema.org/workFeatured>
88	pub r#work_featured: Vec<WorkFeaturedProperty>,
89	/// <https://schema.org/workPerformed>
90	pub r#work_performed: Vec<WorkPerformedProperty>,
91	/// <https://schema.org/additionalType>
92	pub r#additional_type: Vec<AdditionalTypeProperty>,
93	/// <https://schema.org/alternateName>
94	pub r#alternate_name: Vec<AlternateNameProperty>,
95	/// <https://schema.org/description>
96	pub r#description: Vec<DescriptionProperty>,
97	/// <https://schema.org/disambiguatingDescription>
98	pub r#disambiguating_description: Vec<DisambiguatingDescriptionProperty>,
99	/// <https://schema.org/identifier>
100	pub r#identifier: Vec<IdentifierProperty>,
101	/// <https://schema.org/image>
102	pub r#image: Vec<ImageProperty>,
103	/// <https://schema.org/mainEntityOfPage>
104	pub r#main_entity_of_page: Vec<MainEntityOfPageProperty>,
105	/// <https://schema.org/name>
106	pub r#name: Vec<NameProperty>,
107	/// <https://schema.org/potentialAction>
108	pub r#potential_action: Vec<PotentialActionProperty>,
109	/// <https://schema.org/sameAs>
110	pub r#same_as: Vec<SameAsProperty>,
111	/// <https://schema.org/subjectOf>
112	pub r#subject_of: Vec<SubjectOfProperty>,
113	/// <https://schema.org/url>
114	pub r#url: Vec<UrlProperty>,
115}
116/// This trait is for properties from <https://schema.org/SocialEvent>.
117pub trait SocialEventTrait {}
118impl SocialEventTrait for SocialEvent {}
119impl EventTrait for SocialEvent {
120	fn get_about(&self) -> &[AboutProperty] {
121		self.r#about.as_slice()
122	}
123	fn take_about(&mut self) -> Vec<AboutProperty> {
124		std::mem::take(&mut self.r#about)
125	}
126	fn get_actor(&self) -> &[ActorProperty] {
127		self.r#actor.as_slice()
128	}
129	fn take_actor(&mut self) -> Vec<ActorProperty> {
130		std::mem::take(&mut self.r#actor)
131	}
132	fn get_aggregate_rating(&self) -> &[AggregateRatingProperty] {
133		self.r#aggregate_rating.as_slice()
134	}
135	fn take_aggregate_rating(&mut self) -> Vec<AggregateRatingProperty> {
136		std::mem::take(&mut self.r#aggregate_rating)
137	}
138	fn get_attendee(&self) -> &[AttendeeProperty] {
139		self.r#attendee.as_slice()
140	}
141	fn take_attendee(&mut self) -> Vec<AttendeeProperty> {
142		std::mem::take(&mut self.r#attendee)
143	}
144	fn get_attendees(&self) -> &[AttendeesProperty] {
145		self.r#attendees.as_slice()
146	}
147	fn take_attendees(&mut self) -> Vec<AttendeesProperty> {
148		std::mem::take(&mut self.r#attendees)
149	}
150	fn get_audience(&self) -> &[AudienceProperty] {
151		self.r#audience.as_slice()
152	}
153	fn take_audience(&mut self) -> Vec<AudienceProperty> {
154		std::mem::take(&mut self.r#audience)
155	}
156	fn get_composer(&self) -> &[ComposerProperty] {
157		self.r#composer.as_slice()
158	}
159	fn take_composer(&mut self) -> Vec<ComposerProperty> {
160		std::mem::take(&mut self.r#composer)
161	}
162	fn get_contributor(&self) -> &[ContributorProperty] {
163		self.r#contributor.as_slice()
164	}
165	fn take_contributor(&mut self) -> Vec<ContributorProperty> {
166		std::mem::take(&mut self.r#contributor)
167	}
168	fn get_director(&self) -> &[DirectorProperty] {
169		self.r#director.as_slice()
170	}
171	fn take_director(&mut self) -> Vec<DirectorProperty> {
172		std::mem::take(&mut self.r#director)
173	}
174	fn get_door_time(&self) -> &[DoorTimeProperty] {
175		self.r#door_time.as_slice()
176	}
177	fn take_door_time(&mut self) -> Vec<DoorTimeProperty> {
178		std::mem::take(&mut self.r#door_time)
179	}
180	fn get_duration(&self) -> &[DurationProperty] {
181		self.r#duration.as_slice()
182	}
183	fn take_duration(&mut self) -> Vec<DurationProperty> {
184		std::mem::take(&mut self.r#duration)
185	}
186	fn get_end_date(&self) -> &[EndDateProperty] {
187		self.r#end_date.as_slice()
188	}
189	fn take_end_date(&mut self) -> Vec<EndDateProperty> {
190		std::mem::take(&mut self.r#end_date)
191	}
192	fn get_event_attendance_mode(&self) -> &[EventAttendanceModeProperty] {
193		self.r#event_attendance_mode.as_slice()
194	}
195	fn take_event_attendance_mode(&mut self) -> Vec<EventAttendanceModeProperty> {
196		std::mem::take(&mut self.r#event_attendance_mode)
197	}
198	fn get_event_schedule(&self) -> &[EventScheduleProperty] {
199		self.r#event_schedule.as_slice()
200	}
201	fn take_event_schedule(&mut self) -> Vec<EventScheduleProperty> {
202		std::mem::take(&mut self.r#event_schedule)
203	}
204	fn get_event_status(&self) -> &[EventStatusProperty] {
205		self.r#event_status.as_slice()
206	}
207	fn take_event_status(&mut self) -> Vec<EventStatusProperty> {
208		std::mem::take(&mut self.r#event_status)
209	}
210	fn get_funder(&self) -> &[FunderProperty] {
211		self.r#funder.as_slice()
212	}
213	fn take_funder(&mut self) -> Vec<FunderProperty> {
214		std::mem::take(&mut self.r#funder)
215	}
216	fn get_funding(&self) -> &[FundingProperty] {
217		self.r#funding.as_slice()
218	}
219	fn take_funding(&mut self) -> Vec<FundingProperty> {
220		std::mem::take(&mut self.r#funding)
221	}
222	fn get_in_language(&self) -> &[InLanguageProperty] {
223		self.r#in_language.as_slice()
224	}
225	fn take_in_language(&mut self) -> Vec<InLanguageProperty> {
226		std::mem::take(&mut self.r#in_language)
227	}
228	fn get_is_accessible_for_free(&self) -> &[IsAccessibleForFreeProperty] {
229		self.r#is_accessible_for_free.as_slice()
230	}
231	fn take_is_accessible_for_free(&mut self) -> Vec<IsAccessibleForFreeProperty> {
232		std::mem::take(&mut self.r#is_accessible_for_free)
233	}
234	fn get_keywords(&self) -> &[KeywordsProperty] {
235		self.r#keywords.as_slice()
236	}
237	fn take_keywords(&mut self) -> Vec<KeywordsProperty> {
238		std::mem::take(&mut self.r#keywords)
239	}
240	fn get_location(&self) -> &[LocationProperty] {
241		self.r#location.as_slice()
242	}
243	fn take_location(&mut self) -> Vec<LocationProperty> {
244		std::mem::take(&mut self.r#location)
245	}
246	fn get_maximum_attendee_capacity(&self) -> &[MaximumAttendeeCapacityProperty] {
247		self.r#maximum_attendee_capacity.as_slice()
248	}
249	fn take_maximum_attendee_capacity(&mut self) -> Vec<MaximumAttendeeCapacityProperty> {
250		std::mem::take(&mut self.r#maximum_attendee_capacity)
251	}
252	fn get_maximum_physical_attendee_capacity(&self) -> &[MaximumPhysicalAttendeeCapacityProperty] {
253		self.r#maximum_physical_attendee_capacity.as_slice()
254	}
255	fn take_maximum_physical_attendee_capacity(
256		&mut self,
257	) -> Vec<MaximumPhysicalAttendeeCapacityProperty> {
258		std::mem::take(&mut self.r#maximum_physical_attendee_capacity)
259	}
260	fn get_maximum_virtual_attendee_capacity(&self) -> &[MaximumVirtualAttendeeCapacityProperty] {
261		self.r#maximum_virtual_attendee_capacity.as_slice()
262	}
263	fn take_maximum_virtual_attendee_capacity(
264		&mut self,
265	) -> Vec<MaximumVirtualAttendeeCapacityProperty> {
266		std::mem::take(&mut self.r#maximum_virtual_attendee_capacity)
267	}
268	fn get_offers(&self) -> &[OffersProperty] {
269		self.r#offers.as_slice()
270	}
271	fn take_offers(&mut self) -> Vec<OffersProperty> {
272		std::mem::take(&mut self.r#offers)
273	}
274	fn get_organizer(&self) -> &[OrganizerProperty] {
275		self.r#organizer.as_slice()
276	}
277	fn take_organizer(&mut self) -> Vec<OrganizerProperty> {
278		std::mem::take(&mut self.r#organizer)
279	}
280	fn get_performer(&self) -> &[PerformerProperty] {
281		self.r#performer.as_slice()
282	}
283	fn take_performer(&mut self) -> Vec<PerformerProperty> {
284		std::mem::take(&mut self.r#performer)
285	}
286	fn get_performers(&self) -> &[PerformersProperty] {
287		self.r#performers.as_slice()
288	}
289	fn take_performers(&mut self) -> Vec<PerformersProperty> {
290		std::mem::take(&mut self.r#performers)
291	}
292	fn get_previous_start_date(&self) -> &[PreviousStartDateProperty] {
293		self.r#previous_start_date.as_slice()
294	}
295	fn take_previous_start_date(&mut self) -> Vec<PreviousStartDateProperty> {
296		std::mem::take(&mut self.r#previous_start_date)
297	}
298	fn get_recorded_in(&self) -> &[RecordedInProperty] {
299		self.r#recorded_in.as_slice()
300	}
301	fn take_recorded_in(&mut self) -> Vec<RecordedInProperty> {
302		std::mem::take(&mut self.r#recorded_in)
303	}
304	fn get_remaining_attendee_capacity(&self) -> &[RemainingAttendeeCapacityProperty] {
305		self.r#remaining_attendee_capacity.as_slice()
306	}
307	fn take_remaining_attendee_capacity(&mut self) -> Vec<RemainingAttendeeCapacityProperty> {
308		std::mem::take(&mut self.r#remaining_attendee_capacity)
309	}
310	fn get_review(&self) -> &[ReviewProperty] {
311		self.r#review.as_slice()
312	}
313	fn take_review(&mut self) -> Vec<ReviewProperty> {
314		std::mem::take(&mut self.r#review)
315	}
316	fn get_sponsor(&self) -> &[SponsorProperty] {
317		self.r#sponsor.as_slice()
318	}
319	fn take_sponsor(&mut self) -> Vec<SponsorProperty> {
320		std::mem::take(&mut self.r#sponsor)
321	}
322	fn get_start_date(&self) -> &[StartDateProperty] {
323		self.r#start_date.as_slice()
324	}
325	fn take_start_date(&mut self) -> Vec<StartDateProperty> {
326		std::mem::take(&mut self.r#start_date)
327	}
328	fn get_sub_event(&self) -> &[SubEventProperty] {
329		self.r#sub_event.as_slice()
330	}
331	fn take_sub_event(&mut self) -> Vec<SubEventProperty> {
332		std::mem::take(&mut self.r#sub_event)
333	}
334	fn get_sub_events(&self) -> &[SubEventsProperty] {
335		self.r#sub_events.as_slice()
336	}
337	fn take_sub_events(&mut self) -> Vec<SubEventsProperty> {
338		std::mem::take(&mut self.r#sub_events)
339	}
340	fn get_super_event(&self) -> &[SuperEventProperty] {
341		self.r#super_event.as_slice()
342	}
343	fn take_super_event(&mut self) -> Vec<SuperEventProperty> {
344		std::mem::take(&mut self.r#super_event)
345	}
346	fn get_translator(&self) -> &[TranslatorProperty] {
347		self.r#translator.as_slice()
348	}
349	fn take_translator(&mut self) -> Vec<TranslatorProperty> {
350		std::mem::take(&mut self.r#translator)
351	}
352	fn get_typical_age_range(&self) -> &[TypicalAgeRangeProperty] {
353		self.r#typical_age_range.as_slice()
354	}
355	fn take_typical_age_range(&mut self) -> Vec<TypicalAgeRangeProperty> {
356		std::mem::take(&mut self.r#typical_age_range)
357	}
358	fn get_work_featured(&self) -> &[WorkFeaturedProperty] {
359		self.r#work_featured.as_slice()
360	}
361	fn take_work_featured(&mut self) -> Vec<WorkFeaturedProperty> {
362		std::mem::take(&mut self.r#work_featured)
363	}
364	fn get_work_performed(&self) -> &[WorkPerformedProperty] {
365		self.r#work_performed.as_slice()
366	}
367	fn take_work_performed(&mut self) -> Vec<WorkPerformedProperty> {
368		std::mem::take(&mut self.r#work_performed)
369	}
370}
371impl ThingTrait for SocialEvent {
372	fn get_additional_type(&self) -> &[AdditionalTypeProperty] {
373		self.r#additional_type.as_slice()
374	}
375	fn take_additional_type(&mut self) -> Vec<AdditionalTypeProperty> {
376		std::mem::take(&mut self.r#additional_type)
377	}
378	fn get_alternate_name(&self) -> &[AlternateNameProperty] {
379		self.r#alternate_name.as_slice()
380	}
381	fn take_alternate_name(&mut self) -> Vec<AlternateNameProperty> {
382		std::mem::take(&mut self.r#alternate_name)
383	}
384	fn get_description(&self) -> &[DescriptionProperty] {
385		self.r#description.as_slice()
386	}
387	fn take_description(&mut self) -> Vec<DescriptionProperty> {
388		std::mem::take(&mut self.r#description)
389	}
390	fn get_disambiguating_description(&self) -> &[DisambiguatingDescriptionProperty] {
391		self.r#disambiguating_description.as_slice()
392	}
393	fn take_disambiguating_description(&mut self) -> Vec<DisambiguatingDescriptionProperty> {
394		std::mem::take(&mut self.r#disambiguating_description)
395	}
396	fn get_identifier(&self) -> &[IdentifierProperty] {
397		self.r#identifier.as_slice()
398	}
399	fn take_identifier(&mut self) -> Vec<IdentifierProperty> {
400		std::mem::take(&mut self.r#identifier)
401	}
402	fn get_image(&self) -> &[ImageProperty] {
403		self.r#image.as_slice()
404	}
405	fn take_image(&mut self) -> Vec<ImageProperty> {
406		std::mem::take(&mut self.r#image)
407	}
408	fn get_main_entity_of_page(&self) -> &[MainEntityOfPageProperty] {
409		self.r#main_entity_of_page.as_slice()
410	}
411	fn take_main_entity_of_page(&mut self) -> Vec<MainEntityOfPageProperty> {
412		std::mem::take(&mut self.r#main_entity_of_page)
413	}
414	fn get_name(&self) -> &[NameProperty] {
415		self.r#name.as_slice()
416	}
417	fn take_name(&mut self) -> Vec<NameProperty> {
418		std::mem::take(&mut self.r#name)
419	}
420	fn get_potential_action(&self) -> &[PotentialActionProperty] {
421		self.r#potential_action.as_slice()
422	}
423	fn take_potential_action(&mut self) -> Vec<PotentialActionProperty> {
424		std::mem::take(&mut self.r#potential_action)
425	}
426	fn get_same_as(&self) -> &[SameAsProperty] {
427		self.r#same_as.as_slice()
428	}
429	fn take_same_as(&mut self) -> Vec<SameAsProperty> {
430		std::mem::take(&mut self.r#same_as)
431	}
432	fn get_subject_of(&self) -> &[SubjectOfProperty] {
433		self.r#subject_of.as_slice()
434	}
435	fn take_subject_of(&mut self) -> Vec<SubjectOfProperty> {
436		std::mem::take(&mut self.r#subject_of)
437	}
438	fn get_url(&self) -> &[UrlProperty] {
439		self.r#url.as_slice()
440	}
441	fn take_url(&mut self) -> Vec<UrlProperty> {
442		std::mem::take(&mut self.r#url)
443	}
444}
445#[cfg(feature = "serde")]
446mod serde {
447	use std::{fmt, fmt::Formatter};
448
449	use ::serde::{
450		de, de::Visitor, ser::SerializeStruct, Deserialize, Deserializer, Serialize, Serializer,
451	};
452
453	use super::*;
454	impl Serialize for SocialEvent {
455		fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
456		where
457			S: Serializer,
458		{
459			let len: usize = [
460				!Vec::is_empty(&self.r#about) as usize,
461				!Vec::is_empty(&self.r#actor) as usize,
462				!Vec::is_empty(&self.r#aggregate_rating) as usize,
463				!Vec::is_empty(&self.r#attendee) as usize,
464				!Vec::is_empty(&self.r#attendees) as usize,
465				!Vec::is_empty(&self.r#audience) as usize,
466				!Vec::is_empty(&self.r#composer) as usize,
467				!Vec::is_empty(&self.r#contributor) as usize,
468				!Vec::is_empty(&self.r#director) as usize,
469				!Vec::is_empty(&self.r#door_time) as usize,
470				!Vec::is_empty(&self.r#duration) as usize,
471				!Vec::is_empty(&self.r#end_date) as usize,
472				!Vec::is_empty(&self.r#event_attendance_mode) as usize,
473				!Vec::is_empty(&self.r#event_schedule) as usize,
474				!Vec::is_empty(&self.r#event_status) as usize,
475				!Vec::is_empty(&self.r#funder) as usize,
476				!Vec::is_empty(&self.r#funding) as usize,
477				!Vec::is_empty(&self.r#in_language) as usize,
478				!Vec::is_empty(&self.r#is_accessible_for_free) as usize,
479				!Vec::is_empty(&self.r#keywords) as usize,
480				!Vec::is_empty(&self.r#location) as usize,
481				!Vec::is_empty(&self.r#maximum_attendee_capacity) as usize,
482				!Vec::is_empty(&self.r#maximum_physical_attendee_capacity) as usize,
483				!Vec::is_empty(&self.r#maximum_virtual_attendee_capacity) as usize,
484				!Vec::is_empty(&self.r#offers) as usize,
485				!Vec::is_empty(&self.r#organizer) as usize,
486				!Vec::is_empty(&self.r#performer) as usize,
487				!Vec::is_empty(&self.r#performers) as usize,
488				!Vec::is_empty(&self.r#previous_start_date) as usize,
489				!Vec::is_empty(&self.r#recorded_in) as usize,
490				!Vec::is_empty(&self.r#remaining_attendee_capacity) as usize,
491				!Vec::is_empty(&self.r#review) as usize,
492				!Vec::is_empty(&self.r#sponsor) as usize,
493				!Vec::is_empty(&self.r#start_date) as usize,
494				!Vec::is_empty(&self.r#sub_event) as usize,
495				!Vec::is_empty(&self.r#sub_events) as usize,
496				!Vec::is_empty(&self.r#super_event) as usize,
497				!Vec::is_empty(&self.r#translator) as usize,
498				!Vec::is_empty(&self.r#typical_age_range) as usize,
499				!Vec::is_empty(&self.r#work_featured) as usize,
500				!Vec::is_empty(&self.r#work_performed) as usize,
501				!Vec::is_empty(&self.r#additional_type) as usize,
502				!Vec::is_empty(&self.r#alternate_name) as usize,
503				!Vec::is_empty(&self.r#description) as usize,
504				!Vec::is_empty(&self.r#disambiguating_description) as usize,
505				!Vec::is_empty(&self.r#identifier) as usize,
506				!Vec::is_empty(&self.r#image) as usize,
507				!Vec::is_empty(&self.r#main_entity_of_page) as usize,
508				!Vec::is_empty(&self.r#name) as usize,
509				!Vec::is_empty(&self.r#potential_action) as usize,
510				!Vec::is_empty(&self.r#same_as) as usize,
511				!Vec::is_empty(&self.r#subject_of) as usize,
512				!Vec::is_empty(&self.r#url) as usize,
513			]
514			.iter()
515			.sum();
516			let mut serialize_struct =
517				Serializer::serialize_struct(serializer, "SocialEvent", len)?;
518			if !Vec::is_empty(&self.r#about) {
519				serialize_struct.serialize_field("about", {
520					struct SerializeWith<'a>(&'a Vec<AboutProperty>);
521					impl<'a> Serialize for SerializeWith<'a> {
522						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
523						where
524							S: Serializer,
525						{
526							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
527								self.0, serializer,
528							)
529						}
530					}
531					&SerializeWith(&self.r#about)
532				})?;
533			} else {
534				serialize_struct.skip_field("about")?;
535			}
536			if !Vec::is_empty(&self.r#actor) {
537				serialize_struct.serialize_field("actor", {
538					struct SerializeWith<'a>(&'a Vec<ActorProperty>);
539					impl<'a> Serialize for SerializeWith<'a> {
540						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
541						where
542							S: Serializer,
543						{
544							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
545								self.0, serializer,
546							)
547						}
548					}
549					&SerializeWith(&self.r#actor)
550				})?;
551			} else {
552				serialize_struct.skip_field("actor")?;
553			}
554			if !Vec::is_empty(&self.r#aggregate_rating) {
555				serialize_struct.serialize_field("aggregateRating", {
556					struct SerializeWith<'a>(&'a Vec<AggregateRatingProperty>);
557					impl<'a> Serialize for SerializeWith<'a> {
558						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
559						where
560							S: Serializer,
561						{
562							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
563								self.0, serializer,
564							)
565						}
566					}
567					&SerializeWith(&self.r#aggregate_rating)
568				})?;
569			} else {
570				serialize_struct.skip_field("aggregateRating")?;
571			}
572			if !Vec::is_empty(&self.r#attendee) {
573				serialize_struct.serialize_field("attendee", {
574					struct SerializeWith<'a>(&'a Vec<AttendeeProperty>);
575					impl<'a> Serialize for SerializeWith<'a> {
576						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
577						where
578							S: Serializer,
579						{
580							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
581								self.0, serializer,
582							)
583						}
584					}
585					&SerializeWith(&self.r#attendee)
586				})?;
587			} else {
588				serialize_struct.skip_field("attendee")?;
589			}
590			if !Vec::is_empty(&self.r#attendees) {
591				serialize_struct.serialize_field("attendees", {
592					struct SerializeWith<'a>(&'a Vec<AttendeesProperty>);
593					impl<'a> Serialize for SerializeWith<'a> {
594						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
595						where
596							S: Serializer,
597						{
598							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
599								self.0, serializer,
600							)
601						}
602					}
603					&SerializeWith(&self.r#attendees)
604				})?;
605			} else {
606				serialize_struct.skip_field("attendees")?;
607			}
608			if !Vec::is_empty(&self.r#audience) {
609				serialize_struct.serialize_field("audience", {
610					struct SerializeWith<'a>(&'a Vec<AudienceProperty>);
611					impl<'a> Serialize for SerializeWith<'a> {
612						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
613						where
614							S: Serializer,
615						{
616							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
617								self.0, serializer,
618							)
619						}
620					}
621					&SerializeWith(&self.r#audience)
622				})?;
623			} else {
624				serialize_struct.skip_field("audience")?;
625			}
626			if !Vec::is_empty(&self.r#composer) {
627				serialize_struct.serialize_field("composer", {
628					struct SerializeWith<'a>(&'a Vec<ComposerProperty>);
629					impl<'a> Serialize for SerializeWith<'a> {
630						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
631						where
632							S: Serializer,
633						{
634							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
635								self.0, serializer,
636							)
637						}
638					}
639					&SerializeWith(&self.r#composer)
640				})?;
641			} else {
642				serialize_struct.skip_field("composer")?;
643			}
644			if !Vec::is_empty(&self.r#contributor) {
645				serialize_struct.serialize_field("contributor", {
646					struct SerializeWith<'a>(&'a Vec<ContributorProperty>);
647					impl<'a> Serialize for SerializeWith<'a> {
648						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
649						where
650							S: Serializer,
651						{
652							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
653								self.0, serializer,
654							)
655						}
656					}
657					&SerializeWith(&self.r#contributor)
658				})?;
659			} else {
660				serialize_struct.skip_field("contributor")?;
661			}
662			if !Vec::is_empty(&self.r#director) {
663				serialize_struct.serialize_field("director", {
664					struct SerializeWith<'a>(&'a Vec<DirectorProperty>);
665					impl<'a> Serialize for SerializeWith<'a> {
666						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
667						where
668							S: Serializer,
669						{
670							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
671								self.0, serializer,
672							)
673						}
674					}
675					&SerializeWith(&self.r#director)
676				})?;
677			} else {
678				serialize_struct.skip_field("director")?;
679			}
680			if !Vec::is_empty(&self.r#door_time) {
681				serialize_struct.serialize_field("doorTime", {
682					struct SerializeWith<'a>(&'a Vec<DoorTimeProperty>);
683					impl<'a> Serialize for SerializeWith<'a> {
684						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
685						where
686							S: Serializer,
687						{
688							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
689								self.0, serializer,
690							)
691						}
692					}
693					&SerializeWith(&self.r#door_time)
694				})?;
695			} else {
696				serialize_struct.skip_field("doorTime")?;
697			}
698			if !Vec::is_empty(&self.r#duration) {
699				serialize_struct.serialize_field("duration", {
700					struct SerializeWith<'a>(&'a Vec<DurationProperty>);
701					impl<'a> Serialize for SerializeWith<'a> {
702						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
703						where
704							S: Serializer,
705						{
706							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
707								self.0, serializer,
708							)
709						}
710					}
711					&SerializeWith(&self.r#duration)
712				})?;
713			} else {
714				serialize_struct.skip_field("duration")?;
715			}
716			if !Vec::is_empty(&self.r#end_date) {
717				serialize_struct.serialize_field("endDate", {
718					struct SerializeWith<'a>(&'a Vec<EndDateProperty>);
719					impl<'a> Serialize for SerializeWith<'a> {
720						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
721						where
722							S: Serializer,
723						{
724							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
725								self.0, serializer,
726							)
727						}
728					}
729					&SerializeWith(&self.r#end_date)
730				})?;
731			} else {
732				serialize_struct.skip_field("endDate")?;
733			}
734			if !Vec::is_empty(&self.r#event_attendance_mode) {
735				serialize_struct.serialize_field("eventAttendanceMode", {
736					struct SerializeWith<'a>(&'a Vec<EventAttendanceModeProperty>);
737					impl<'a> Serialize for SerializeWith<'a> {
738						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
739						where
740							S: Serializer,
741						{
742							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
743								self.0, serializer,
744							)
745						}
746					}
747					&SerializeWith(&self.r#event_attendance_mode)
748				})?;
749			} else {
750				serialize_struct.skip_field("eventAttendanceMode")?;
751			}
752			if !Vec::is_empty(&self.r#event_schedule) {
753				serialize_struct.serialize_field("eventSchedule", {
754					struct SerializeWith<'a>(&'a Vec<EventScheduleProperty>);
755					impl<'a> Serialize for SerializeWith<'a> {
756						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
757						where
758							S: Serializer,
759						{
760							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
761								self.0, serializer,
762							)
763						}
764					}
765					&SerializeWith(&self.r#event_schedule)
766				})?;
767			} else {
768				serialize_struct.skip_field("eventSchedule")?;
769			}
770			if !Vec::is_empty(&self.r#event_status) {
771				serialize_struct.serialize_field("eventStatus", {
772					struct SerializeWith<'a>(&'a Vec<EventStatusProperty>);
773					impl<'a> Serialize for SerializeWith<'a> {
774						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
775						where
776							S: Serializer,
777						{
778							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
779								self.0, serializer,
780							)
781						}
782					}
783					&SerializeWith(&self.r#event_status)
784				})?;
785			} else {
786				serialize_struct.skip_field("eventStatus")?;
787			}
788			if !Vec::is_empty(&self.r#funder) {
789				serialize_struct.serialize_field("funder", {
790					struct SerializeWith<'a>(&'a Vec<FunderProperty>);
791					impl<'a> Serialize for SerializeWith<'a> {
792						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
793						where
794							S: Serializer,
795						{
796							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
797								self.0, serializer,
798							)
799						}
800					}
801					&SerializeWith(&self.r#funder)
802				})?;
803			} else {
804				serialize_struct.skip_field("funder")?;
805			}
806			if !Vec::is_empty(&self.r#funding) {
807				serialize_struct.serialize_field("funding", {
808					struct SerializeWith<'a>(&'a Vec<FundingProperty>);
809					impl<'a> Serialize for SerializeWith<'a> {
810						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
811						where
812							S: Serializer,
813						{
814							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
815								self.0, serializer,
816							)
817						}
818					}
819					&SerializeWith(&self.r#funding)
820				})?;
821			} else {
822				serialize_struct.skip_field("funding")?;
823			}
824			if !Vec::is_empty(&self.r#in_language) {
825				serialize_struct.serialize_field("inLanguage", {
826					struct SerializeWith<'a>(&'a Vec<InLanguageProperty>);
827					impl<'a> Serialize for SerializeWith<'a> {
828						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
829						where
830							S: Serializer,
831						{
832							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
833								self.0, serializer,
834							)
835						}
836					}
837					&SerializeWith(&self.r#in_language)
838				})?;
839			} else {
840				serialize_struct.skip_field("inLanguage")?;
841			}
842			if !Vec::is_empty(&self.r#is_accessible_for_free) {
843				serialize_struct.serialize_field("isAccessibleForFree", {
844					struct SerializeWith<'a>(&'a Vec<IsAccessibleForFreeProperty>);
845					impl<'a> Serialize for SerializeWith<'a> {
846						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
847						where
848							S: Serializer,
849						{
850							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
851								self.0, serializer,
852							)
853						}
854					}
855					&SerializeWith(&self.r#is_accessible_for_free)
856				})?;
857			} else {
858				serialize_struct.skip_field("isAccessibleForFree")?;
859			}
860			if !Vec::is_empty(&self.r#keywords) {
861				serialize_struct.serialize_field("keywords", {
862					struct SerializeWith<'a>(&'a Vec<KeywordsProperty>);
863					impl<'a> Serialize for SerializeWith<'a> {
864						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
865						where
866							S: Serializer,
867						{
868							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
869								self.0, serializer,
870							)
871						}
872					}
873					&SerializeWith(&self.r#keywords)
874				})?;
875			} else {
876				serialize_struct.skip_field("keywords")?;
877			}
878			if !Vec::is_empty(&self.r#location) {
879				serialize_struct.serialize_field("location", {
880					struct SerializeWith<'a>(&'a Vec<LocationProperty>);
881					impl<'a> Serialize for SerializeWith<'a> {
882						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
883						where
884							S: Serializer,
885						{
886							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
887								self.0, serializer,
888							)
889						}
890					}
891					&SerializeWith(&self.r#location)
892				})?;
893			} else {
894				serialize_struct.skip_field("location")?;
895			}
896			if !Vec::is_empty(&self.r#maximum_attendee_capacity) {
897				serialize_struct.serialize_field("maximumAttendeeCapacity", {
898					struct SerializeWith<'a>(&'a Vec<MaximumAttendeeCapacityProperty>);
899					impl<'a> Serialize for SerializeWith<'a> {
900						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
901						where
902							S: Serializer,
903						{
904							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
905								self.0, serializer,
906							)
907						}
908					}
909					&SerializeWith(&self.r#maximum_attendee_capacity)
910				})?;
911			} else {
912				serialize_struct.skip_field("maximumAttendeeCapacity")?;
913			}
914			if !Vec::is_empty(&self.r#maximum_physical_attendee_capacity) {
915				serialize_struct.serialize_field("maximumPhysicalAttendeeCapacity", {
916					struct SerializeWith<'a>(&'a Vec<MaximumPhysicalAttendeeCapacityProperty>);
917					impl<'a> Serialize for SerializeWith<'a> {
918						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
919						where
920							S: Serializer,
921						{
922							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
923								self.0, serializer,
924							)
925						}
926					}
927					&SerializeWith(&self.r#maximum_physical_attendee_capacity)
928				})?;
929			} else {
930				serialize_struct.skip_field("maximumPhysicalAttendeeCapacity")?;
931			}
932			if !Vec::is_empty(&self.r#maximum_virtual_attendee_capacity) {
933				serialize_struct.serialize_field("maximumVirtualAttendeeCapacity", {
934					struct SerializeWith<'a>(&'a Vec<MaximumVirtualAttendeeCapacityProperty>);
935					impl<'a> Serialize for SerializeWith<'a> {
936						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
937						where
938							S: Serializer,
939						{
940							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
941								self.0, serializer,
942							)
943						}
944					}
945					&SerializeWith(&self.r#maximum_virtual_attendee_capacity)
946				})?;
947			} else {
948				serialize_struct.skip_field("maximumVirtualAttendeeCapacity")?;
949			}
950			if !Vec::is_empty(&self.r#offers) {
951				serialize_struct.serialize_field("offers", {
952					struct SerializeWith<'a>(&'a Vec<OffersProperty>);
953					impl<'a> Serialize for SerializeWith<'a> {
954						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
955						where
956							S: Serializer,
957						{
958							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
959								self.0, serializer,
960							)
961						}
962					}
963					&SerializeWith(&self.r#offers)
964				})?;
965			} else {
966				serialize_struct.skip_field("offers")?;
967			}
968			if !Vec::is_empty(&self.r#organizer) {
969				serialize_struct.serialize_field("organizer", {
970					struct SerializeWith<'a>(&'a Vec<OrganizerProperty>);
971					impl<'a> Serialize for SerializeWith<'a> {
972						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
973						where
974							S: Serializer,
975						{
976							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
977								self.0, serializer,
978							)
979						}
980					}
981					&SerializeWith(&self.r#organizer)
982				})?;
983			} else {
984				serialize_struct.skip_field("organizer")?;
985			}
986			if !Vec::is_empty(&self.r#performer) {
987				serialize_struct.serialize_field("performer", {
988					struct SerializeWith<'a>(&'a Vec<PerformerProperty>);
989					impl<'a> Serialize for SerializeWith<'a> {
990						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
991						where
992							S: Serializer,
993						{
994							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
995								self.0, serializer,
996							)
997						}
998					}
999					&SerializeWith(&self.r#performer)
1000				})?;
1001			} else {
1002				serialize_struct.skip_field("performer")?;
1003			}
1004			if !Vec::is_empty(&self.r#performers) {
1005				serialize_struct.serialize_field("performers", {
1006					struct SerializeWith<'a>(&'a Vec<PerformersProperty>);
1007					impl<'a> Serialize for SerializeWith<'a> {
1008						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1009						where
1010							S: Serializer,
1011						{
1012							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1013								self.0, serializer,
1014							)
1015						}
1016					}
1017					&SerializeWith(&self.r#performers)
1018				})?;
1019			} else {
1020				serialize_struct.skip_field("performers")?;
1021			}
1022			if !Vec::is_empty(&self.r#previous_start_date) {
1023				serialize_struct.serialize_field("previousStartDate", {
1024					struct SerializeWith<'a>(&'a Vec<PreviousStartDateProperty>);
1025					impl<'a> Serialize for SerializeWith<'a> {
1026						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1027						where
1028							S: Serializer,
1029						{
1030							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1031								self.0, serializer,
1032							)
1033						}
1034					}
1035					&SerializeWith(&self.r#previous_start_date)
1036				})?;
1037			} else {
1038				serialize_struct.skip_field("previousStartDate")?;
1039			}
1040			if !Vec::is_empty(&self.r#recorded_in) {
1041				serialize_struct.serialize_field("recordedIn", {
1042					struct SerializeWith<'a>(&'a Vec<RecordedInProperty>);
1043					impl<'a> Serialize for SerializeWith<'a> {
1044						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1045						where
1046							S: Serializer,
1047						{
1048							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1049								self.0, serializer,
1050							)
1051						}
1052					}
1053					&SerializeWith(&self.r#recorded_in)
1054				})?;
1055			} else {
1056				serialize_struct.skip_field("recordedIn")?;
1057			}
1058			if !Vec::is_empty(&self.r#remaining_attendee_capacity) {
1059				serialize_struct.serialize_field("remainingAttendeeCapacity", {
1060					struct SerializeWith<'a>(&'a Vec<RemainingAttendeeCapacityProperty>);
1061					impl<'a> Serialize for SerializeWith<'a> {
1062						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1063						where
1064							S: Serializer,
1065						{
1066							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1067								self.0, serializer,
1068							)
1069						}
1070					}
1071					&SerializeWith(&self.r#remaining_attendee_capacity)
1072				})?;
1073			} else {
1074				serialize_struct.skip_field("remainingAttendeeCapacity")?;
1075			}
1076			if !Vec::is_empty(&self.r#review) {
1077				serialize_struct.serialize_field("review", {
1078					struct SerializeWith<'a>(&'a Vec<ReviewProperty>);
1079					impl<'a> Serialize for SerializeWith<'a> {
1080						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1081						where
1082							S: Serializer,
1083						{
1084							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1085								self.0, serializer,
1086							)
1087						}
1088					}
1089					&SerializeWith(&self.r#review)
1090				})?;
1091			} else {
1092				serialize_struct.skip_field("review")?;
1093			}
1094			if !Vec::is_empty(&self.r#sponsor) {
1095				serialize_struct.serialize_field("sponsor", {
1096					struct SerializeWith<'a>(&'a Vec<SponsorProperty>);
1097					impl<'a> Serialize for SerializeWith<'a> {
1098						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1099						where
1100							S: Serializer,
1101						{
1102							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1103								self.0, serializer,
1104							)
1105						}
1106					}
1107					&SerializeWith(&self.r#sponsor)
1108				})?;
1109			} else {
1110				serialize_struct.skip_field("sponsor")?;
1111			}
1112			if !Vec::is_empty(&self.r#start_date) {
1113				serialize_struct.serialize_field("startDate", {
1114					struct SerializeWith<'a>(&'a Vec<StartDateProperty>);
1115					impl<'a> Serialize for SerializeWith<'a> {
1116						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1117						where
1118							S: Serializer,
1119						{
1120							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1121								self.0, serializer,
1122							)
1123						}
1124					}
1125					&SerializeWith(&self.r#start_date)
1126				})?;
1127			} else {
1128				serialize_struct.skip_field("startDate")?;
1129			}
1130			if !Vec::is_empty(&self.r#sub_event) {
1131				serialize_struct.serialize_field("subEvent", {
1132					struct SerializeWith<'a>(&'a Vec<SubEventProperty>);
1133					impl<'a> Serialize for SerializeWith<'a> {
1134						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1135						where
1136							S: Serializer,
1137						{
1138							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1139								self.0, serializer,
1140							)
1141						}
1142					}
1143					&SerializeWith(&self.r#sub_event)
1144				})?;
1145			} else {
1146				serialize_struct.skip_field("subEvent")?;
1147			}
1148			if !Vec::is_empty(&self.r#sub_events) {
1149				serialize_struct.serialize_field("subEvents", {
1150					struct SerializeWith<'a>(&'a Vec<SubEventsProperty>);
1151					impl<'a> Serialize for SerializeWith<'a> {
1152						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1153						where
1154							S: Serializer,
1155						{
1156							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1157								self.0, serializer,
1158							)
1159						}
1160					}
1161					&SerializeWith(&self.r#sub_events)
1162				})?;
1163			} else {
1164				serialize_struct.skip_field("subEvents")?;
1165			}
1166			if !Vec::is_empty(&self.r#super_event) {
1167				serialize_struct.serialize_field("superEvent", {
1168					struct SerializeWith<'a>(&'a Vec<SuperEventProperty>);
1169					impl<'a> Serialize for SerializeWith<'a> {
1170						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1171						where
1172							S: Serializer,
1173						{
1174							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1175								self.0, serializer,
1176							)
1177						}
1178					}
1179					&SerializeWith(&self.r#super_event)
1180				})?;
1181			} else {
1182				serialize_struct.skip_field("superEvent")?;
1183			}
1184			if !Vec::is_empty(&self.r#translator) {
1185				serialize_struct.serialize_field("translator", {
1186					struct SerializeWith<'a>(&'a Vec<TranslatorProperty>);
1187					impl<'a> Serialize for SerializeWith<'a> {
1188						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1189						where
1190							S: Serializer,
1191						{
1192							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1193								self.0, serializer,
1194							)
1195						}
1196					}
1197					&SerializeWith(&self.r#translator)
1198				})?;
1199			} else {
1200				serialize_struct.skip_field("translator")?;
1201			}
1202			if !Vec::is_empty(&self.r#typical_age_range) {
1203				serialize_struct.serialize_field("typicalAgeRange", {
1204					struct SerializeWith<'a>(&'a Vec<TypicalAgeRangeProperty>);
1205					impl<'a> Serialize for SerializeWith<'a> {
1206						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1207						where
1208							S: Serializer,
1209						{
1210							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1211								self.0, serializer,
1212							)
1213						}
1214					}
1215					&SerializeWith(&self.r#typical_age_range)
1216				})?;
1217			} else {
1218				serialize_struct.skip_field("typicalAgeRange")?;
1219			}
1220			if !Vec::is_empty(&self.r#work_featured) {
1221				serialize_struct.serialize_field("workFeatured", {
1222					struct SerializeWith<'a>(&'a Vec<WorkFeaturedProperty>);
1223					impl<'a> Serialize for SerializeWith<'a> {
1224						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1225						where
1226							S: Serializer,
1227						{
1228							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1229								self.0, serializer,
1230							)
1231						}
1232					}
1233					&SerializeWith(&self.r#work_featured)
1234				})?;
1235			} else {
1236				serialize_struct.skip_field("workFeatured")?;
1237			}
1238			if !Vec::is_empty(&self.r#work_performed) {
1239				serialize_struct.serialize_field("workPerformed", {
1240					struct SerializeWith<'a>(&'a Vec<WorkPerformedProperty>);
1241					impl<'a> Serialize for SerializeWith<'a> {
1242						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1243						where
1244							S: Serializer,
1245						{
1246							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1247								self.0, serializer,
1248							)
1249						}
1250					}
1251					&SerializeWith(&self.r#work_performed)
1252				})?;
1253			} else {
1254				serialize_struct.skip_field("workPerformed")?;
1255			}
1256			if !Vec::is_empty(&self.r#additional_type) {
1257				serialize_struct.serialize_field("additionalType", {
1258					struct SerializeWith<'a>(&'a Vec<AdditionalTypeProperty>);
1259					impl<'a> Serialize for SerializeWith<'a> {
1260						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1261						where
1262							S: Serializer,
1263						{
1264							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1265								self.0, serializer,
1266							)
1267						}
1268					}
1269					&SerializeWith(&self.r#additional_type)
1270				})?;
1271			} else {
1272				serialize_struct.skip_field("additionalType")?;
1273			}
1274			if !Vec::is_empty(&self.r#alternate_name) {
1275				serialize_struct.serialize_field("alternateName", {
1276					struct SerializeWith<'a>(&'a Vec<AlternateNameProperty>);
1277					impl<'a> Serialize for SerializeWith<'a> {
1278						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1279						where
1280							S: Serializer,
1281						{
1282							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1283								self.0, serializer,
1284							)
1285						}
1286					}
1287					&SerializeWith(&self.r#alternate_name)
1288				})?;
1289			} else {
1290				serialize_struct.skip_field("alternateName")?;
1291			}
1292			if !Vec::is_empty(&self.r#description) {
1293				serialize_struct.serialize_field("description", {
1294					struct SerializeWith<'a>(&'a Vec<DescriptionProperty>);
1295					impl<'a> Serialize for SerializeWith<'a> {
1296						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1297						where
1298							S: Serializer,
1299						{
1300							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1301								self.0, serializer,
1302							)
1303						}
1304					}
1305					&SerializeWith(&self.r#description)
1306				})?;
1307			} else {
1308				serialize_struct.skip_field("description")?;
1309			}
1310			if !Vec::is_empty(&self.r#disambiguating_description) {
1311				serialize_struct.serialize_field("disambiguatingDescription", {
1312					struct SerializeWith<'a>(&'a Vec<DisambiguatingDescriptionProperty>);
1313					impl<'a> Serialize for SerializeWith<'a> {
1314						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1315						where
1316							S: Serializer,
1317						{
1318							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1319								self.0, serializer,
1320							)
1321						}
1322					}
1323					&SerializeWith(&self.r#disambiguating_description)
1324				})?;
1325			} else {
1326				serialize_struct.skip_field("disambiguatingDescription")?;
1327			}
1328			if !Vec::is_empty(&self.r#identifier) {
1329				serialize_struct.serialize_field("identifier", {
1330					struct SerializeWith<'a>(&'a Vec<IdentifierProperty>);
1331					impl<'a> Serialize for SerializeWith<'a> {
1332						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1333						where
1334							S: Serializer,
1335						{
1336							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1337								self.0, serializer,
1338							)
1339						}
1340					}
1341					&SerializeWith(&self.r#identifier)
1342				})?;
1343			} else {
1344				serialize_struct.skip_field("identifier")?;
1345			}
1346			if !Vec::is_empty(&self.r#image) {
1347				serialize_struct.serialize_field("image", {
1348					struct SerializeWith<'a>(&'a Vec<ImageProperty>);
1349					impl<'a> Serialize for SerializeWith<'a> {
1350						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1351						where
1352							S: Serializer,
1353						{
1354							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1355								self.0, serializer,
1356							)
1357						}
1358					}
1359					&SerializeWith(&self.r#image)
1360				})?;
1361			} else {
1362				serialize_struct.skip_field("image")?;
1363			}
1364			if !Vec::is_empty(&self.r#main_entity_of_page) {
1365				serialize_struct.serialize_field("mainEntityOfPage", {
1366					struct SerializeWith<'a>(&'a Vec<MainEntityOfPageProperty>);
1367					impl<'a> Serialize for SerializeWith<'a> {
1368						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1369						where
1370							S: Serializer,
1371						{
1372							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1373								self.0, serializer,
1374							)
1375						}
1376					}
1377					&SerializeWith(&self.r#main_entity_of_page)
1378				})?;
1379			} else {
1380				serialize_struct.skip_field("mainEntityOfPage")?;
1381			}
1382			if !Vec::is_empty(&self.r#name) {
1383				serialize_struct.serialize_field("name", {
1384					struct SerializeWith<'a>(&'a Vec<NameProperty>);
1385					impl<'a> Serialize for SerializeWith<'a> {
1386						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1387						where
1388							S: Serializer,
1389						{
1390							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1391								self.0, serializer,
1392							)
1393						}
1394					}
1395					&SerializeWith(&self.r#name)
1396				})?;
1397			} else {
1398				serialize_struct.skip_field("name")?;
1399			}
1400			if !Vec::is_empty(&self.r#potential_action) {
1401				serialize_struct.serialize_field("potentialAction", {
1402					struct SerializeWith<'a>(&'a Vec<PotentialActionProperty>);
1403					impl<'a> Serialize for SerializeWith<'a> {
1404						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1405						where
1406							S: Serializer,
1407						{
1408							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1409								self.0, serializer,
1410							)
1411						}
1412					}
1413					&SerializeWith(&self.r#potential_action)
1414				})?;
1415			} else {
1416				serialize_struct.skip_field("potentialAction")?;
1417			}
1418			if !Vec::is_empty(&self.r#same_as) {
1419				serialize_struct.serialize_field("sameAs", {
1420					struct SerializeWith<'a>(&'a Vec<SameAsProperty>);
1421					impl<'a> Serialize for SerializeWith<'a> {
1422						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1423						where
1424							S: Serializer,
1425						{
1426							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1427								self.0, serializer,
1428							)
1429						}
1430					}
1431					&SerializeWith(&self.r#same_as)
1432				})?;
1433			} else {
1434				serialize_struct.skip_field("sameAs")?;
1435			}
1436			if !Vec::is_empty(&self.r#subject_of) {
1437				serialize_struct.serialize_field("subjectOf", {
1438					struct SerializeWith<'a>(&'a Vec<SubjectOfProperty>);
1439					impl<'a> Serialize for SerializeWith<'a> {
1440						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1441						where
1442							S: Serializer,
1443						{
1444							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1445								self.0, serializer,
1446							)
1447						}
1448					}
1449					&SerializeWith(&self.r#subject_of)
1450				})?;
1451			} else {
1452				serialize_struct.skip_field("subjectOf")?;
1453			}
1454			if !Vec::is_empty(&self.r#url) {
1455				serialize_struct.serialize_field("url", {
1456					struct SerializeWith<'a>(&'a Vec<UrlProperty>);
1457					impl<'a> Serialize for SerializeWith<'a> {
1458						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1459						where
1460							S: Serializer,
1461						{
1462							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1463								self.0, serializer,
1464							)
1465						}
1466					}
1467					&SerializeWith(&self.r#url)
1468				})?;
1469			} else {
1470				serialize_struct.skip_field("url")?;
1471			}
1472			serialize_struct.end()
1473		}
1474	}
1475	impl<'de> Deserialize<'de> for SocialEvent {
1476		fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1477		where
1478			D: Deserializer<'de>,
1479		{
1480			enum Field {
1481				About,
1482				Actor,
1483				AggregateRating,
1484				Attendee,
1485				Attendees,
1486				Audience,
1487				Composer,
1488				Contributor,
1489				Director,
1490				DoorTime,
1491				Duration,
1492				EndDate,
1493				EventAttendanceMode,
1494				EventSchedule,
1495				EventStatus,
1496				Funder,
1497				Funding,
1498				InLanguage,
1499				IsAccessibleForFree,
1500				Keywords,
1501				Location,
1502				MaximumAttendeeCapacity,
1503				MaximumPhysicalAttendeeCapacity,
1504				MaximumVirtualAttendeeCapacity,
1505				Offers,
1506				Organizer,
1507				Performer,
1508				Performers,
1509				PreviousStartDate,
1510				RecordedIn,
1511				RemainingAttendeeCapacity,
1512				Review,
1513				Sponsor,
1514				StartDate,
1515				SubEvent,
1516				SubEvents,
1517				SuperEvent,
1518				Translator,
1519				TypicalAgeRange,
1520				WorkFeatured,
1521				WorkPerformed,
1522				AdditionalType,
1523				AlternateName,
1524				Description,
1525				DisambiguatingDescription,
1526				Identifier,
1527				Image,
1528				MainEntityOfPage,
1529				Name,
1530				PotentialAction,
1531				SameAs,
1532				SubjectOf,
1533				Url,
1534				Ignore,
1535			}
1536			struct FieldVisitor;
1537			impl<'de> Visitor<'de> for FieldVisitor {
1538				type Value = Field;
1539				fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
1540					formatter.write_str("field identifier")
1541				}
1542				fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
1543				where
1544					E: de::Error,
1545				{
1546					match value {
1547						"about" => Ok(Field::About),
1548						"actor" => Ok(Field::Actor),
1549						"aggregateRating" => Ok(Field::AggregateRating),
1550						"attendee" => Ok(Field::Attendee),
1551						"attendees" => Ok(Field::Attendees),
1552						"audience" => Ok(Field::Audience),
1553						"composer" => Ok(Field::Composer),
1554						"contributor" => Ok(Field::Contributor),
1555						"director" => Ok(Field::Director),
1556						"doorTime" => Ok(Field::DoorTime),
1557						"duration" => Ok(Field::Duration),
1558						"endDate" => Ok(Field::EndDate),
1559						"eventAttendanceMode" => Ok(Field::EventAttendanceMode),
1560						"eventSchedule" => Ok(Field::EventSchedule),
1561						"eventStatus" => Ok(Field::EventStatus),
1562						"funder" => Ok(Field::Funder),
1563						"funding" => Ok(Field::Funding),
1564						"inLanguage" => Ok(Field::InLanguage),
1565						"isAccessibleForFree" => Ok(Field::IsAccessibleForFree),
1566						"keywords" => Ok(Field::Keywords),
1567						"location" => Ok(Field::Location),
1568						"maximumAttendeeCapacity" => Ok(Field::MaximumAttendeeCapacity),
1569						"maximumPhysicalAttendeeCapacity" => {
1570							Ok(Field::MaximumPhysicalAttendeeCapacity)
1571						}
1572						"maximumVirtualAttendeeCapacity" => {
1573							Ok(Field::MaximumVirtualAttendeeCapacity)
1574						}
1575						"offers" => Ok(Field::Offers),
1576						"organizer" => Ok(Field::Organizer),
1577						"performer" => Ok(Field::Performer),
1578						"performers" => Ok(Field::Performers),
1579						"previousStartDate" => Ok(Field::PreviousStartDate),
1580						"recordedIn" => Ok(Field::RecordedIn),
1581						"remainingAttendeeCapacity" => Ok(Field::RemainingAttendeeCapacity),
1582						"review" => Ok(Field::Review),
1583						"sponsor" => Ok(Field::Sponsor),
1584						"startDate" => Ok(Field::StartDate),
1585						"subEvent" => Ok(Field::SubEvent),
1586						"subEvents" => Ok(Field::SubEvents),
1587						"superEvent" => Ok(Field::SuperEvent),
1588						"translator" => Ok(Field::Translator),
1589						"typicalAgeRange" => Ok(Field::TypicalAgeRange),
1590						"workFeatured" => Ok(Field::WorkFeatured),
1591						"workPerformed" => Ok(Field::WorkPerformed),
1592						"additionalType" => Ok(Field::AdditionalType),
1593						"alternateName" => Ok(Field::AlternateName),
1594						"description" => Ok(Field::Description),
1595						"disambiguatingDescription" => Ok(Field::DisambiguatingDescription),
1596						"identifier" => Ok(Field::Identifier),
1597						"image" => Ok(Field::Image),
1598						"mainEntityOfPage" => Ok(Field::MainEntityOfPage),
1599						"name" => Ok(Field::Name),
1600						"potentialAction" => Ok(Field::PotentialAction),
1601						"sameAs" => Ok(Field::SameAs),
1602						"subjectOf" => Ok(Field::SubjectOf),
1603						"url" => Ok(Field::Url),
1604						"id" | "type" => Ok(Field::Ignore),
1605						_ => Err(de::Error::unknown_field(value, FIELDS)),
1606					}
1607				}
1608				fn visit_bytes<E>(self, value: &[u8]) -> Result<Self::Value, E>
1609				where
1610					E: de::Error,
1611				{
1612					match value {
1613						b"about" => Ok(Field::About),
1614						b"actor" => Ok(Field::Actor),
1615						b"aggregateRating" => Ok(Field::AggregateRating),
1616						b"attendee" => Ok(Field::Attendee),
1617						b"attendees" => Ok(Field::Attendees),
1618						b"audience" => Ok(Field::Audience),
1619						b"composer" => Ok(Field::Composer),
1620						b"contributor" => Ok(Field::Contributor),
1621						b"director" => Ok(Field::Director),
1622						b"doorTime" => Ok(Field::DoorTime),
1623						b"duration" => Ok(Field::Duration),
1624						b"endDate" => Ok(Field::EndDate),
1625						b"eventAttendanceMode" => Ok(Field::EventAttendanceMode),
1626						b"eventSchedule" => Ok(Field::EventSchedule),
1627						b"eventStatus" => Ok(Field::EventStatus),
1628						b"funder" => Ok(Field::Funder),
1629						b"funding" => Ok(Field::Funding),
1630						b"inLanguage" => Ok(Field::InLanguage),
1631						b"isAccessibleForFree" => Ok(Field::IsAccessibleForFree),
1632						b"keywords" => Ok(Field::Keywords),
1633						b"location" => Ok(Field::Location),
1634						b"maximumAttendeeCapacity" => Ok(Field::MaximumAttendeeCapacity),
1635						b"maximumPhysicalAttendeeCapacity" => {
1636							Ok(Field::MaximumPhysicalAttendeeCapacity)
1637						}
1638						b"maximumVirtualAttendeeCapacity" => {
1639							Ok(Field::MaximumVirtualAttendeeCapacity)
1640						}
1641						b"offers" => Ok(Field::Offers),
1642						b"organizer" => Ok(Field::Organizer),
1643						b"performer" => Ok(Field::Performer),
1644						b"performers" => Ok(Field::Performers),
1645						b"previousStartDate" => Ok(Field::PreviousStartDate),
1646						b"recordedIn" => Ok(Field::RecordedIn),
1647						b"remainingAttendeeCapacity" => Ok(Field::RemainingAttendeeCapacity),
1648						b"review" => Ok(Field::Review),
1649						b"sponsor" => Ok(Field::Sponsor),
1650						b"startDate" => Ok(Field::StartDate),
1651						b"subEvent" => Ok(Field::SubEvent),
1652						b"subEvents" => Ok(Field::SubEvents),
1653						b"superEvent" => Ok(Field::SuperEvent),
1654						b"translator" => Ok(Field::Translator),
1655						b"typicalAgeRange" => Ok(Field::TypicalAgeRange),
1656						b"workFeatured" => Ok(Field::WorkFeatured),
1657						b"workPerformed" => Ok(Field::WorkPerformed),
1658						b"additionalType" => Ok(Field::AdditionalType),
1659						b"alternateName" => Ok(Field::AlternateName),
1660						b"description" => Ok(Field::Description),
1661						b"disambiguatingDescription" => Ok(Field::DisambiguatingDescription),
1662						b"identifier" => Ok(Field::Identifier),
1663						b"image" => Ok(Field::Image),
1664						b"mainEntityOfPage" => Ok(Field::MainEntityOfPage),
1665						b"name" => Ok(Field::Name),
1666						b"potentialAction" => Ok(Field::PotentialAction),
1667						b"sameAs" => Ok(Field::SameAs),
1668						b"subjectOf" => Ok(Field::SubjectOf),
1669						b"url" => Ok(Field::Url),
1670						b"id" | b"type" => Ok(Field::Ignore),
1671						_ => {
1672							let value = &String::from_utf8_lossy(value);
1673							Err(de::Error::unknown_field(value, FIELDS))
1674						}
1675					}
1676				}
1677			}
1678			impl<'de> Deserialize<'de> for Field {
1679				fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1680				where
1681					D: Deserializer<'de>,
1682				{
1683					deserializer.deserialize_identifier(FieldVisitor)
1684				}
1685			}
1686			struct ClassVisitor;
1687			impl<'de> Visitor<'de> for ClassVisitor {
1688				type Value = SocialEvent;
1689				fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
1690					formatter.write_str("schema.org schema SocialEvent")
1691				}
1692				fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error>
1693				where
1694					A: de::MapAccess<'de>,
1695				{
1696					let mut r#about_property = None;
1697					let mut r#actor_property = None;
1698					let mut r#aggregate_rating_property = None;
1699					let mut r#attendee_property = None;
1700					let mut r#attendees_property = None;
1701					let mut r#audience_property = None;
1702					let mut r#composer_property = None;
1703					let mut r#contributor_property = None;
1704					let mut r#director_property = None;
1705					let mut r#door_time_property = None;
1706					let mut r#duration_property = None;
1707					let mut r#end_date_property = None;
1708					let mut r#event_attendance_mode_property = None;
1709					let mut r#event_schedule_property = None;
1710					let mut r#event_status_property = None;
1711					let mut r#funder_property = None;
1712					let mut r#funding_property = None;
1713					let mut r#in_language_property = None;
1714					let mut r#is_accessible_for_free_property = None;
1715					let mut r#keywords_property = None;
1716					let mut r#location_property = None;
1717					let mut r#maximum_attendee_capacity_property = None;
1718					let mut r#maximum_physical_attendee_capacity_property = None;
1719					let mut r#maximum_virtual_attendee_capacity_property = None;
1720					let mut r#offers_property = None;
1721					let mut r#organizer_property = None;
1722					let mut r#performer_property = None;
1723					let mut r#performers_property = None;
1724					let mut r#previous_start_date_property = None;
1725					let mut r#recorded_in_property = None;
1726					let mut r#remaining_attendee_capacity_property = None;
1727					let mut r#review_property = None;
1728					let mut r#sponsor_property = None;
1729					let mut r#start_date_property = None;
1730					let mut r#sub_event_property = None;
1731					let mut r#sub_events_property = None;
1732					let mut r#super_event_property = None;
1733					let mut r#translator_property = None;
1734					let mut r#typical_age_range_property = None;
1735					let mut r#work_featured_property = None;
1736					let mut r#work_performed_property = None;
1737					let mut r#additional_type_property = None;
1738					let mut r#alternate_name_property = None;
1739					let mut r#description_property = None;
1740					let mut r#disambiguating_description_property = None;
1741					let mut r#identifier_property = None;
1742					let mut r#image_property = None;
1743					let mut r#main_entity_of_page_property = None;
1744					let mut r#name_property = None;
1745					let mut r#potential_action_property = None;
1746					let mut r#same_as_property = None;
1747					let mut r#subject_of_property = None;
1748					let mut r#url_property = None;
1749					while let Some(key) = map.next_key::<Field>()? {
1750						match key {
1751							Field::About => {
1752								if r#about_property.is_some() {
1753									return Err(<A::Error as de::Error>::duplicate_field("about"));
1754								}
1755								r#about_property = Some({
1756									struct DeserializeWith(Vec<AboutProperty>);
1757									impl<'de> Deserialize<'de> for DeserializeWith {
1758										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1759										where
1760											D: Deserializer<'de>,
1761										{
1762											Ok(DeserializeWith(serde_with::As::<
1763												serde_with::OneOrMany<serde_with::Same>,
1764											>::deserialize(deserializer)?))
1765										}
1766									}
1767									match map.next_value::<DeserializeWith>() {
1768										Ok(deserialize_with) => deserialize_with.0,
1769										Err(err) => {
1770											return Err(err);
1771										}
1772									}
1773								});
1774							}
1775							Field::Actor => {
1776								if r#actor_property.is_some() {
1777									return Err(<A::Error as de::Error>::duplicate_field("actor"));
1778								}
1779								r#actor_property = Some({
1780									struct DeserializeWith(Vec<ActorProperty>);
1781									impl<'de> Deserialize<'de> for DeserializeWith {
1782										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1783										where
1784											D: Deserializer<'de>,
1785										{
1786											Ok(DeserializeWith(serde_with::As::<
1787												serde_with::OneOrMany<serde_with::Same>,
1788											>::deserialize(deserializer)?))
1789										}
1790									}
1791									match map.next_value::<DeserializeWith>() {
1792										Ok(deserialize_with) => deserialize_with.0,
1793										Err(err) => {
1794											return Err(err);
1795										}
1796									}
1797								});
1798							}
1799							Field::AggregateRating => {
1800								if r#aggregate_rating_property.is_some() {
1801									return Err(<A::Error as de::Error>::duplicate_field(
1802										"aggregateRating",
1803									));
1804								}
1805								r#aggregate_rating_property = Some({
1806									struct DeserializeWith(Vec<AggregateRatingProperty>);
1807									impl<'de> Deserialize<'de> for DeserializeWith {
1808										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1809										where
1810											D: Deserializer<'de>,
1811										{
1812											Ok(DeserializeWith(serde_with::As::<
1813												serde_with::OneOrMany<serde_with::Same>,
1814											>::deserialize(deserializer)?))
1815										}
1816									}
1817									match map.next_value::<DeserializeWith>() {
1818										Ok(deserialize_with) => deserialize_with.0,
1819										Err(err) => {
1820											return Err(err);
1821										}
1822									}
1823								});
1824							}
1825							Field::Attendee => {
1826								if r#attendee_property.is_some() {
1827									return Err(<A::Error as de::Error>::duplicate_field(
1828										"attendee",
1829									));
1830								}
1831								r#attendee_property = Some({
1832									struct DeserializeWith(Vec<AttendeeProperty>);
1833									impl<'de> Deserialize<'de> for DeserializeWith {
1834										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1835										where
1836											D: Deserializer<'de>,
1837										{
1838											Ok(DeserializeWith(serde_with::As::<
1839												serde_with::OneOrMany<serde_with::Same>,
1840											>::deserialize(deserializer)?))
1841										}
1842									}
1843									match map.next_value::<DeserializeWith>() {
1844										Ok(deserialize_with) => deserialize_with.0,
1845										Err(err) => {
1846											return Err(err);
1847										}
1848									}
1849								});
1850							}
1851							Field::Attendees => {
1852								if r#attendees_property.is_some() {
1853									return Err(<A::Error as de::Error>::duplicate_field(
1854										"attendees",
1855									));
1856								}
1857								r#attendees_property = Some({
1858									struct DeserializeWith(Vec<AttendeesProperty>);
1859									impl<'de> Deserialize<'de> for DeserializeWith {
1860										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1861										where
1862											D: Deserializer<'de>,
1863										{
1864											Ok(DeserializeWith(serde_with::As::<
1865												serde_with::OneOrMany<serde_with::Same>,
1866											>::deserialize(deserializer)?))
1867										}
1868									}
1869									match map.next_value::<DeserializeWith>() {
1870										Ok(deserialize_with) => deserialize_with.0,
1871										Err(err) => {
1872											return Err(err);
1873										}
1874									}
1875								});
1876							}
1877							Field::Audience => {
1878								if r#audience_property.is_some() {
1879									return Err(<A::Error as de::Error>::duplicate_field(
1880										"audience",
1881									));
1882								}
1883								r#audience_property = Some({
1884									struct DeserializeWith(Vec<AudienceProperty>);
1885									impl<'de> Deserialize<'de> for DeserializeWith {
1886										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1887										where
1888											D: Deserializer<'de>,
1889										{
1890											Ok(DeserializeWith(serde_with::As::<
1891												serde_with::OneOrMany<serde_with::Same>,
1892											>::deserialize(deserializer)?))
1893										}
1894									}
1895									match map.next_value::<DeserializeWith>() {
1896										Ok(deserialize_with) => deserialize_with.0,
1897										Err(err) => {
1898											return Err(err);
1899										}
1900									}
1901								});
1902							}
1903							Field::Composer => {
1904								if r#composer_property.is_some() {
1905									return Err(<A::Error as de::Error>::duplicate_field(
1906										"composer",
1907									));
1908								}
1909								r#composer_property = Some({
1910									struct DeserializeWith(Vec<ComposerProperty>);
1911									impl<'de> Deserialize<'de> for DeserializeWith {
1912										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1913										where
1914											D: Deserializer<'de>,
1915										{
1916											Ok(DeserializeWith(serde_with::As::<
1917												serde_with::OneOrMany<serde_with::Same>,
1918											>::deserialize(deserializer)?))
1919										}
1920									}
1921									match map.next_value::<DeserializeWith>() {
1922										Ok(deserialize_with) => deserialize_with.0,
1923										Err(err) => {
1924											return Err(err);
1925										}
1926									}
1927								});
1928							}
1929							Field::Contributor => {
1930								if r#contributor_property.is_some() {
1931									return Err(<A::Error as de::Error>::duplicate_field(
1932										"contributor",
1933									));
1934								}
1935								r#contributor_property = Some({
1936									struct DeserializeWith(Vec<ContributorProperty>);
1937									impl<'de> Deserialize<'de> for DeserializeWith {
1938										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1939										where
1940											D: Deserializer<'de>,
1941										{
1942											Ok(DeserializeWith(serde_with::As::<
1943												serde_with::OneOrMany<serde_with::Same>,
1944											>::deserialize(deserializer)?))
1945										}
1946									}
1947									match map.next_value::<DeserializeWith>() {
1948										Ok(deserialize_with) => deserialize_with.0,
1949										Err(err) => {
1950											return Err(err);
1951										}
1952									}
1953								});
1954							}
1955							Field::Director => {
1956								if r#director_property.is_some() {
1957									return Err(<A::Error as de::Error>::duplicate_field(
1958										"director",
1959									));
1960								}
1961								r#director_property = Some({
1962									struct DeserializeWith(Vec<DirectorProperty>);
1963									impl<'de> Deserialize<'de> for DeserializeWith {
1964										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1965										where
1966											D: Deserializer<'de>,
1967										{
1968											Ok(DeserializeWith(serde_with::As::<
1969												serde_with::OneOrMany<serde_with::Same>,
1970											>::deserialize(deserializer)?))
1971										}
1972									}
1973									match map.next_value::<DeserializeWith>() {
1974										Ok(deserialize_with) => deserialize_with.0,
1975										Err(err) => {
1976											return Err(err);
1977										}
1978									}
1979								});
1980							}
1981							Field::DoorTime => {
1982								if r#door_time_property.is_some() {
1983									return Err(<A::Error as de::Error>::duplicate_field(
1984										"doorTime",
1985									));
1986								}
1987								r#door_time_property = Some({
1988									struct DeserializeWith(Vec<DoorTimeProperty>);
1989									impl<'de> Deserialize<'de> for DeserializeWith {
1990										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1991										where
1992											D: Deserializer<'de>,
1993										{
1994											Ok(DeserializeWith(serde_with::As::<
1995												serde_with::OneOrMany<serde_with::Same>,
1996											>::deserialize(deserializer)?))
1997										}
1998									}
1999									match map.next_value::<DeserializeWith>() {
2000										Ok(deserialize_with) => deserialize_with.0,
2001										Err(err) => {
2002											return Err(err);
2003										}
2004									}
2005								});
2006							}
2007							Field::Duration => {
2008								if r#duration_property.is_some() {
2009									return Err(<A::Error as de::Error>::duplicate_field(
2010										"duration",
2011									));
2012								}
2013								r#duration_property = Some({
2014									struct DeserializeWith(Vec<DurationProperty>);
2015									impl<'de> Deserialize<'de> for DeserializeWith {
2016										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2017										where
2018											D: Deserializer<'de>,
2019										{
2020											Ok(DeserializeWith(serde_with::As::<
2021												serde_with::OneOrMany<serde_with::Same>,
2022											>::deserialize(deserializer)?))
2023										}
2024									}
2025									match map.next_value::<DeserializeWith>() {
2026										Ok(deserialize_with) => deserialize_with.0,
2027										Err(err) => {
2028											return Err(err);
2029										}
2030									}
2031								});
2032							}
2033							Field::EndDate => {
2034								if r#end_date_property.is_some() {
2035									return Err(<A::Error as de::Error>::duplicate_field(
2036										"endDate",
2037									));
2038								}
2039								r#end_date_property = Some({
2040									struct DeserializeWith(Vec<EndDateProperty>);
2041									impl<'de> Deserialize<'de> for DeserializeWith {
2042										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2043										where
2044											D: Deserializer<'de>,
2045										{
2046											Ok(DeserializeWith(serde_with::As::<
2047												serde_with::OneOrMany<serde_with::Same>,
2048											>::deserialize(deserializer)?))
2049										}
2050									}
2051									match map.next_value::<DeserializeWith>() {
2052										Ok(deserialize_with) => deserialize_with.0,
2053										Err(err) => {
2054											return Err(err);
2055										}
2056									}
2057								});
2058							}
2059							Field::EventAttendanceMode => {
2060								if r#event_attendance_mode_property.is_some() {
2061									return Err(<A::Error as de::Error>::duplicate_field(
2062										"eventAttendanceMode",
2063									));
2064								}
2065								r#event_attendance_mode_property = Some({
2066									struct DeserializeWith(Vec<EventAttendanceModeProperty>);
2067									impl<'de> Deserialize<'de> for DeserializeWith {
2068										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2069										where
2070											D: Deserializer<'de>,
2071										{
2072											Ok(DeserializeWith(serde_with::As::<
2073												serde_with::OneOrMany<serde_with::Same>,
2074											>::deserialize(deserializer)?))
2075										}
2076									}
2077									match map.next_value::<DeserializeWith>() {
2078										Ok(deserialize_with) => deserialize_with.0,
2079										Err(err) => {
2080											return Err(err);
2081										}
2082									}
2083								});
2084							}
2085							Field::EventSchedule => {
2086								if r#event_schedule_property.is_some() {
2087									return Err(<A::Error as de::Error>::duplicate_field(
2088										"eventSchedule",
2089									));
2090								}
2091								r#event_schedule_property = Some({
2092									struct DeserializeWith(Vec<EventScheduleProperty>);
2093									impl<'de> Deserialize<'de> for DeserializeWith {
2094										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2095										where
2096											D: Deserializer<'de>,
2097										{
2098											Ok(DeserializeWith(serde_with::As::<
2099												serde_with::OneOrMany<serde_with::Same>,
2100											>::deserialize(deserializer)?))
2101										}
2102									}
2103									match map.next_value::<DeserializeWith>() {
2104										Ok(deserialize_with) => deserialize_with.0,
2105										Err(err) => {
2106											return Err(err);
2107										}
2108									}
2109								});
2110							}
2111							Field::EventStatus => {
2112								if r#event_status_property.is_some() {
2113									return Err(<A::Error as de::Error>::duplicate_field(
2114										"eventStatus",
2115									));
2116								}
2117								r#event_status_property = Some({
2118									struct DeserializeWith(Vec<EventStatusProperty>);
2119									impl<'de> Deserialize<'de> for DeserializeWith {
2120										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2121										where
2122											D: Deserializer<'de>,
2123										{
2124											Ok(DeserializeWith(serde_with::As::<
2125												serde_with::OneOrMany<serde_with::Same>,
2126											>::deserialize(deserializer)?))
2127										}
2128									}
2129									match map.next_value::<DeserializeWith>() {
2130										Ok(deserialize_with) => deserialize_with.0,
2131										Err(err) => {
2132											return Err(err);
2133										}
2134									}
2135								});
2136							}
2137							Field::Funder => {
2138								if r#funder_property.is_some() {
2139									return Err(<A::Error as de::Error>::duplicate_field("funder"));
2140								}
2141								r#funder_property = Some({
2142									struct DeserializeWith(Vec<FunderProperty>);
2143									impl<'de> Deserialize<'de> for DeserializeWith {
2144										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2145										where
2146											D: Deserializer<'de>,
2147										{
2148											Ok(DeserializeWith(serde_with::As::<
2149												serde_with::OneOrMany<serde_with::Same>,
2150											>::deserialize(deserializer)?))
2151										}
2152									}
2153									match map.next_value::<DeserializeWith>() {
2154										Ok(deserialize_with) => deserialize_with.0,
2155										Err(err) => {
2156											return Err(err);
2157										}
2158									}
2159								});
2160							}
2161							Field::Funding => {
2162								if r#funding_property.is_some() {
2163									return Err(<A::Error as de::Error>::duplicate_field(
2164										"funding",
2165									));
2166								}
2167								r#funding_property = Some({
2168									struct DeserializeWith(Vec<FundingProperty>);
2169									impl<'de> Deserialize<'de> for DeserializeWith {
2170										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2171										where
2172											D: Deserializer<'de>,
2173										{
2174											Ok(DeserializeWith(serde_with::As::<
2175												serde_with::OneOrMany<serde_with::Same>,
2176											>::deserialize(deserializer)?))
2177										}
2178									}
2179									match map.next_value::<DeserializeWith>() {
2180										Ok(deserialize_with) => deserialize_with.0,
2181										Err(err) => {
2182											return Err(err);
2183										}
2184									}
2185								});
2186							}
2187							Field::InLanguage => {
2188								if r#in_language_property.is_some() {
2189									return Err(<A::Error as de::Error>::duplicate_field(
2190										"inLanguage",
2191									));
2192								}
2193								r#in_language_property = Some({
2194									struct DeserializeWith(Vec<InLanguageProperty>);
2195									impl<'de> Deserialize<'de> for DeserializeWith {
2196										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2197										where
2198											D: Deserializer<'de>,
2199										{
2200											Ok(DeserializeWith(serde_with::As::<
2201												serde_with::OneOrMany<serde_with::Same>,
2202											>::deserialize(deserializer)?))
2203										}
2204									}
2205									match map.next_value::<DeserializeWith>() {
2206										Ok(deserialize_with) => deserialize_with.0,
2207										Err(err) => {
2208											return Err(err);
2209										}
2210									}
2211								});
2212							}
2213							Field::IsAccessibleForFree => {
2214								if r#is_accessible_for_free_property.is_some() {
2215									return Err(<A::Error as de::Error>::duplicate_field(
2216										"isAccessibleForFree",
2217									));
2218								}
2219								r#is_accessible_for_free_property = Some({
2220									struct DeserializeWith(Vec<IsAccessibleForFreeProperty>);
2221									impl<'de> Deserialize<'de> for DeserializeWith {
2222										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2223										where
2224											D: Deserializer<'de>,
2225										{
2226											Ok(DeserializeWith(serde_with::As::<
2227												serde_with::OneOrMany<serde_with::Same>,
2228											>::deserialize(deserializer)?))
2229										}
2230									}
2231									match map.next_value::<DeserializeWith>() {
2232										Ok(deserialize_with) => deserialize_with.0,
2233										Err(err) => {
2234											return Err(err);
2235										}
2236									}
2237								});
2238							}
2239							Field::Keywords => {
2240								if r#keywords_property.is_some() {
2241									return Err(<A::Error as de::Error>::duplicate_field(
2242										"keywords",
2243									));
2244								}
2245								r#keywords_property = Some({
2246									struct DeserializeWith(Vec<KeywordsProperty>);
2247									impl<'de> Deserialize<'de> for DeserializeWith {
2248										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2249										where
2250											D: Deserializer<'de>,
2251										{
2252											Ok(DeserializeWith(serde_with::As::<
2253												serde_with::OneOrMany<serde_with::Same>,
2254											>::deserialize(deserializer)?))
2255										}
2256									}
2257									match map.next_value::<DeserializeWith>() {
2258										Ok(deserialize_with) => deserialize_with.0,
2259										Err(err) => {
2260											return Err(err);
2261										}
2262									}
2263								});
2264							}
2265							Field::Location => {
2266								if r#location_property.is_some() {
2267									return Err(<A::Error as de::Error>::duplicate_field(
2268										"location",
2269									));
2270								}
2271								r#location_property = Some({
2272									struct DeserializeWith(Vec<LocationProperty>);
2273									impl<'de> Deserialize<'de> for DeserializeWith {
2274										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2275										where
2276											D: Deserializer<'de>,
2277										{
2278											Ok(DeserializeWith(serde_with::As::<
2279												serde_with::OneOrMany<serde_with::Same>,
2280											>::deserialize(deserializer)?))
2281										}
2282									}
2283									match map.next_value::<DeserializeWith>() {
2284										Ok(deserialize_with) => deserialize_with.0,
2285										Err(err) => {
2286											return Err(err);
2287										}
2288									}
2289								});
2290							}
2291							Field::MaximumAttendeeCapacity => {
2292								if r#maximum_attendee_capacity_property.is_some() {
2293									return Err(<A::Error as de::Error>::duplicate_field(
2294										"maximumAttendeeCapacity",
2295									));
2296								}
2297								r#maximum_attendee_capacity_property = Some({
2298									struct DeserializeWith(Vec<MaximumAttendeeCapacityProperty>);
2299									impl<'de> Deserialize<'de> for DeserializeWith {
2300										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2301										where
2302											D: Deserializer<'de>,
2303										{
2304											Ok(DeserializeWith(serde_with::As::<
2305												serde_with::OneOrMany<serde_with::Same>,
2306											>::deserialize(deserializer)?))
2307										}
2308									}
2309									match map.next_value::<DeserializeWith>() {
2310										Ok(deserialize_with) => deserialize_with.0,
2311										Err(err) => {
2312											return Err(err);
2313										}
2314									}
2315								});
2316							}
2317							Field::MaximumPhysicalAttendeeCapacity => {
2318								if r#maximum_physical_attendee_capacity_property.is_some() {
2319									return Err(<A::Error as de::Error>::duplicate_field(
2320										"maximumPhysicalAttendeeCapacity",
2321									));
2322								}
2323								r#maximum_physical_attendee_capacity_property = Some({
2324									struct DeserializeWith(
2325										Vec<MaximumPhysicalAttendeeCapacityProperty>,
2326									);
2327									impl<'de> Deserialize<'de> for DeserializeWith {
2328										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2329										where
2330											D: Deserializer<'de>,
2331										{
2332											Ok(DeserializeWith(serde_with::As::<
2333												serde_with::OneOrMany<serde_with::Same>,
2334											>::deserialize(deserializer)?))
2335										}
2336									}
2337									match map.next_value::<DeserializeWith>() {
2338										Ok(deserialize_with) => deserialize_with.0,
2339										Err(err) => {
2340											return Err(err);
2341										}
2342									}
2343								});
2344							}
2345							Field::MaximumVirtualAttendeeCapacity => {
2346								if r#maximum_virtual_attendee_capacity_property.is_some() {
2347									return Err(<A::Error as de::Error>::duplicate_field(
2348										"maximumVirtualAttendeeCapacity",
2349									));
2350								}
2351								r#maximum_virtual_attendee_capacity_property = Some({
2352									struct DeserializeWith(
2353										Vec<MaximumVirtualAttendeeCapacityProperty>,
2354									);
2355									impl<'de> Deserialize<'de> for DeserializeWith {
2356										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2357										where
2358											D: Deserializer<'de>,
2359										{
2360											Ok(DeserializeWith(serde_with::As::<
2361												serde_with::OneOrMany<serde_with::Same>,
2362											>::deserialize(deserializer)?))
2363										}
2364									}
2365									match map.next_value::<DeserializeWith>() {
2366										Ok(deserialize_with) => deserialize_with.0,
2367										Err(err) => {
2368											return Err(err);
2369										}
2370									}
2371								});
2372							}
2373							Field::Offers => {
2374								if r#offers_property.is_some() {
2375									return Err(<A::Error as de::Error>::duplicate_field("offers"));
2376								}
2377								r#offers_property = Some({
2378									struct DeserializeWith(Vec<OffersProperty>);
2379									impl<'de> Deserialize<'de> for DeserializeWith {
2380										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2381										where
2382											D: Deserializer<'de>,
2383										{
2384											Ok(DeserializeWith(serde_with::As::<
2385												serde_with::OneOrMany<serde_with::Same>,
2386											>::deserialize(deserializer)?))
2387										}
2388									}
2389									match map.next_value::<DeserializeWith>() {
2390										Ok(deserialize_with) => deserialize_with.0,
2391										Err(err) => {
2392											return Err(err);
2393										}
2394									}
2395								});
2396							}
2397							Field::Organizer => {
2398								if r#organizer_property.is_some() {
2399									return Err(<A::Error as de::Error>::duplicate_field(
2400										"organizer",
2401									));
2402								}
2403								r#organizer_property = Some({
2404									struct DeserializeWith(Vec<OrganizerProperty>);
2405									impl<'de> Deserialize<'de> for DeserializeWith {
2406										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2407										where
2408											D: Deserializer<'de>,
2409										{
2410											Ok(DeserializeWith(serde_with::As::<
2411												serde_with::OneOrMany<serde_with::Same>,
2412											>::deserialize(deserializer)?))
2413										}
2414									}
2415									match map.next_value::<DeserializeWith>() {
2416										Ok(deserialize_with) => deserialize_with.0,
2417										Err(err) => {
2418											return Err(err);
2419										}
2420									}
2421								});
2422							}
2423							Field::Performer => {
2424								if r#performer_property.is_some() {
2425									return Err(<A::Error as de::Error>::duplicate_field(
2426										"performer",
2427									));
2428								}
2429								r#performer_property = Some({
2430									struct DeserializeWith(Vec<PerformerProperty>);
2431									impl<'de> Deserialize<'de> for DeserializeWith {
2432										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2433										where
2434											D: Deserializer<'de>,
2435										{
2436											Ok(DeserializeWith(serde_with::As::<
2437												serde_with::OneOrMany<serde_with::Same>,
2438											>::deserialize(deserializer)?))
2439										}
2440									}
2441									match map.next_value::<DeserializeWith>() {
2442										Ok(deserialize_with) => deserialize_with.0,
2443										Err(err) => {
2444											return Err(err);
2445										}
2446									}
2447								});
2448							}
2449							Field::Performers => {
2450								if r#performers_property.is_some() {
2451									return Err(<A::Error as de::Error>::duplicate_field(
2452										"performers",
2453									));
2454								}
2455								r#performers_property = Some({
2456									struct DeserializeWith(Vec<PerformersProperty>);
2457									impl<'de> Deserialize<'de> for DeserializeWith {
2458										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2459										where
2460											D: Deserializer<'de>,
2461										{
2462											Ok(DeserializeWith(serde_with::As::<
2463												serde_with::OneOrMany<serde_with::Same>,
2464											>::deserialize(deserializer)?))
2465										}
2466									}
2467									match map.next_value::<DeserializeWith>() {
2468										Ok(deserialize_with) => deserialize_with.0,
2469										Err(err) => {
2470											return Err(err);
2471										}
2472									}
2473								});
2474							}
2475							Field::PreviousStartDate => {
2476								if r#previous_start_date_property.is_some() {
2477									return Err(<A::Error as de::Error>::duplicate_field(
2478										"previousStartDate",
2479									));
2480								}
2481								r#previous_start_date_property = Some({
2482									struct DeserializeWith(Vec<PreviousStartDateProperty>);
2483									impl<'de> Deserialize<'de> for DeserializeWith {
2484										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2485										where
2486											D: Deserializer<'de>,
2487										{
2488											Ok(DeserializeWith(serde_with::As::<
2489												serde_with::OneOrMany<serde_with::Same>,
2490											>::deserialize(deserializer)?))
2491										}
2492									}
2493									match map.next_value::<DeserializeWith>() {
2494										Ok(deserialize_with) => deserialize_with.0,
2495										Err(err) => {
2496											return Err(err);
2497										}
2498									}
2499								});
2500							}
2501							Field::RecordedIn => {
2502								if r#recorded_in_property.is_some() {
2503									return Err(<A::Error as de::Error>::duplicate_field(
2504										"recordedIn",
2505									));
2506								}
2507								r#recorded_in_property = Some({
2508									struct DeserializeWith(Vec<RecordedInProperty>);
2509									impl<'de> Deserialize<'de> for DeserializeWith {
2510										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2511										where
2512											D: Deserializer<'de>,
2513										{
2514											Ok(DeserializeWith(serde_with::As::<
2515												serde_with::OneOrMany<serde_with::Same>,
2516											>::deserialize(deserializer)?))
2517										}
2518									}
2519									match map.next_value::<DeserializeWith>() {
2520										Ok(deserialize_with) => deserialize_with.0,
2521										Err(err) => {
2522											return Err(err);
2523										}
2524									}
2525								});
2526							}
2527							Field::RemainingAttendeeCapacity => {
2528								if r#remaining_attendee_capacity_property.is_some() {
2529									return Err(<A::Error as de::Error>::duplicate_field(
2530										"remainingAttendeeCapacity",
2531									));
2532								}
2533								r#remaining_attendee_capacity_property = Some({
2534									struct DeserializeWith(Vec<RemainingAttendeeCapacityProperty>);
2535									impl<'de> Deserialize<'de> for DeserializeWith {
2536										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2537										where
2538											D: Deserializer<'de>,
2539										{
2540											Ok(DeserializeWith(serde_with::As::<
2541												serde_with::OneOrMany<serde_with::Same>,
2542											>::deserialize(deserializer)?))
2543										}
2544									}
2545									match map.next_value::<DeserializeWith>() {
2546										Ok(deserialize_with) => deserialize_with.0,
2547										Err(err) => {
2548											return Err(err);
2549										}
2550									}
2551								});
2552							}
2553							Field::Review => {
2554								if r#review_property.is_some() {
2555									return Err(<A::Error as de::Error>::duplicate_field("review"));
2556								}
2557								r#review_property = Some({
2558									struct DeserializeWith(Vec<ReviewProperty>);
2559									impl<'de> Deserialize<'de> for DeserializeWith {
2560										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2561										where
2562											D: Deserializer<'de>,
2563										{
2564											Ok(DeserializeWith(serde_with::As::<
2565												serde_with::OneOrMany<serde_with::Same>,
2566											>::deserialize(deserializer)?))
2567										}
2568									}
2569									match map.next_value::<DeserializeWith>() {
2570										Ok(deserialize_with) => deserialize_with.0,
2571										Err(err) => {
2572											return Err(err);
2573										}
2574									}
2575								});
2576							}
2577							Field::Sponsor => {
2578								if r#sponsor_property.is_some() {
2579									return Err(<A::Error as de::Error>::duplicate_field(
2580										"sponsor",
2581									));
2582								}
2583								r#sponsor_property = Some({
2584									struct DeserializeWith(Vec<SponsorProperty>);
2585									impl<'de> Deserialize<'de> for DeserializeWith {
2586										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2587										where
2588											D: Deserializer<'de>,
2589										{
2590											Ok(DeserializeWith(serde_with::As::<
2591												serde_with::OneOrMany<serde_with::Same>,
2592											>::deserialize(deserializer)?))
2593										}
2594									}
2595									match map.next_value::<DeserializeWith>() {
2596										Ok(deserialize_with) => deserialize_with.0,
2597										Err(err) => {
2598											return Err(err);
2599										}
2600									}
2601								});
2602							}
2603							Field::StartDate => {
2604								if r#start_date_property.is_some() {
2605									return Err(<A::Error as de::Error>::duplicate_field(
2606										"startDate",
2607									));
2608								}
2609								r#start_date_property = Some({
2610									struct DeserializeWith(Vec<StartDateProperty>);
2611									impl<'de> Deserialize<'de> for DeserializeWith {
2612										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2613										where
2614											D: Deserializer<'de>,
2615										{
2616											Ok(DeserializeWith(serde_with::As::<
2617												serde_with::OneOrMany<serde_with::Same>,
2618											>::deserialize(deserializer)?))
2619										}
2620									}
2621									match map.next_value::<DeserializeWith>() {
2622										Ok(deserialize_with) => deserialize_with.0,
2623										Err(err) => {
2624											return Err(err);
2625										}
2626									}
2627								});
2628							}
2629							Field::SubEvent => {
2630								if r#sub_event_property.is_some() {
2631									return Err(<A::Error as de::Error>::duplicate_field(
2632										"subEvent",
2633									));
2634								}
2635								r#sub_event_property = Some({
2636									struct DeserializeWith(Vec<SubEventProperty>);
2637									impl<'de> Deserialize<'de> for DeserializeWith {
2638										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2639										where
2640											D: Deserializer<'de>,
2641										{
2642											Ok(DeserializeWith(serde_with::As::<
2643												serde_with::OneOrMany<serde_with::Same>,
2644											>::deserialize(deserializer)?))
2645										}
2646									}
2647									match map.next_value::<DeserializeWith>() {
2648										Ok(deserialize_with) => deserialize_with.0,
2649										Err(err) => {
2650											return Err(err);
2651										}
2652									}
2653								});
2654							}
2655							Field::SubEvents => {
2656								if r#sub_events_property.is_some() {
2657									return Err(<A::Error as de::Error>::duplicate_field(
2658										"subEvents",
2659									));
2660								}
2661								r#sub_events_property = Some({
2662									struct DeserializeWith(Vec<SubEventsProperty>);
2663									impl<'de> Deserialize<'de> for DeserializeWith {
2664										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2665										where
2666											D: Deserializer<'de>,
2667										{
2668											Ok(DeserializeWith(serde_with::As::<
2669												serde_with::OneOrMany<serde_with::Same>,
2670											>::deserialize(deserializer)?))
2671										}
2672									}
2673									match map.next_value::<DeserializeWith>() {
2674										Ok(deserialize_with) => deserialize_with.0,
2675										Err(err) => {
2676											return Err(err);
2677										}
2678									}
2679								});
2680							}
2681							Field::SuperEvent => {
2682								if r#super_event_property.is_some() {
2683									return Err(<A::Error as de::Error>::duplicate_field(
2684										"superEvent",
2685									));
2686								}
2687								r#super_event_property = Some({
2688									struct DeserializeWith(Vec<SuperEventProperty>);
2689									impl<'de> Deserialize<'de> for DeserializeWith {
2690										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2691										where
2692											D: Deserializer<'de>,
2693										{
2694											Ok(DeserializeWith(serde_with::As::<
2695												serde_with::OneOrMany<serde_with::Same>,
2696											>::deserialize(deserializer)?))
2697										}
2698									}
2699									match map.next_value::<DeserializeWith>() {
2700										Ok(deserialize_with) => deserialize_with.0,
2701										Err(err) => {
2702											return Err(err);
2703										}
2704									}
2705								});
2706							}
2707							Field::Translator => {
2708								if r#translator_property.is_some() {
2709									return Err(<A::Error as de::Error>::duplicate_field(
2710										"translator",
2711									));
2712								}
2713								r#translator_property = Some({
2714									struct DeserializeWith(Vec<TranslatorProperty>);
2715									impl<'de> Deserialize<'de> for DeserializeWith {
2716										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2717										where
2718											D: Deserializer<'de>,
2719										{
2720											Ok(DeserializeWith(serde_with::As::<
2721												serde_with::OneOrMany<serde_with::Same>,
2722											>::deserialize(deserializer)?))
2723										}
2724									}
2725									match map.next_value::<DeserializeWith>() {
2726										Ok(deserialize_with) => deserialize_with.0,
2727										Err(err) => {
2728											return Err(err);
2729										}
2730									}
2731								});
2732							}
2733							Field::TypicalAgeRange => {
2734								if r#typical_age_range_property.is_some() {
2735									return Err(<A::Error as de::Error>::duplicate_field(
2736										"typicalAgeRange",
2737									));
2738								}
2739								r#typical_age_range_property = Some({
2740									struct DeserializeWith(Vec<TypicalAgeRangeProperty>);
2741									impl<'de> Deserialize<'de> for DeserializeWith {
2742										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2743										where
2744											D: Deserializer<'de>,
2745										{
2746											Ok(DeserializeWith(serde_with::As::<
2747												serde_with::OneOrMany<serde_with::Same>,
2748											>::deserialize(deserializer)?))
2749										}
2750									}
2751									match map.next_value::<DeserializeWith>() {
2752										Ok(deserialize_with) => deserialize_with.0,
2753										Err(err) => {
2754											return Err(err);
2755										}
2756									}
2757								});
2758							}
2759							Field::WorkFeatured => {
2760								if r#work_featured_property.is_some() {
2761									return Err(<A::Error as de::Error>::duplicate_field(
2762										"workFeatured",
2763									));
2764								}
2765								r#work_featured_property = Some({
2766									struct DeserializeWith(Vec<WorkFeaturedProperty>);
2767									impl<'de> Deserialize<'de> for DeserializeWith {
2768										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2769										where
2770											D: Deserializer<'de>,
2771										{
2772											Ok(DeserializeWith(serde_with::As::<
2773												serde_with::OneOrMany<serde_with::Same>,
2774											>::deserialize(deserializer)?))
2775										}
2776									}
2777									match map.next_value::<DeserializeWith>() {
2778										Ok(deserialize_with) => deserialize_with.0,
2779										Err(err) => {
2780											return Err(err);
2781										}
2782									}
2783								});
2784							}
2785							Field::WorkPerformed => {
2786								if r#work_performed_property.is_some() {
2787									return Err(<A::Error as de::Error>::duplicate_field(
2788										"workPerformed",
2789									));
2790								}
2791								r#work_performed_property = Some({
2792									struct DeserializeWith(Vec<WorkPerformedProperty>);
2793									impl<'de> Deserialize<'de> for DeserializeWith {
2794										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2795										where
2796											D: Deserializer<'de>,
2797										{
2798											Ok(DeserializeWith(serde_with::As::<
2799												serde_with::OneOrMany<serde_with::Same>,
2800											>::deserialize(deserializer)?))
2801										}
2802									}
2803									match map.next_value::<DeserializeWith>() {
2804										Ok(deserialize_with) => deserialize_with.0,
2805										Err(err) => {
2806											return Err(err);
2807										}
2808									}
2809								});
2810							}
2811							Field::AdditionalType => {
2812								if r#additional_type_property.is_some() {
2813									return Err(<A::Error as de::Error>::duplicate_field(
2814										"additionalType",
2815									));
2816								}
2817								r#additional_type_property = Some({
2818									struct DeserializeWith(Vec<AdditionalTypeProperty>);
2819									impl<'de> Deserialize<'de> for DeserializeWith {
2820										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2821										where
2822											D: Deserializer<'de>,
2823										{
2824											Ok(DeserializeWith(serde_with::As::<
2825												serde_with::OneOrMany<serde_with::Same>,
2826											>::deserialize(deserializer)?))
2827										}
2828									}
2829									match map.next_value::<DeserializeWith>() {
2830										Ok(deserialize_with) => deserialize_with.0,
2831										Err(err) => {
2832											return Err(err);
2833										}
2834									}
2835								});
2836							}
2837							Field::AlternateName => {
2838								if r#alternate_name_property.is_some() {
2839									return Err(<A::Error as de::Error>::duplicate_field(
2840										"alternateName",
2841									));
2842								}
2843								r#alternate_name_property = Some({
2844									struct DeserializeWith(Vec<AlternateNameProperty>);
2845									impl<'de> Deserialize<'de> for DeserializeWith {
2846										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2847										where
2848											D: Deserializer<'de>,
2849										{
2850											Ok(DeserializeWith(serde_with::As::<
2851												serde_with::OneOrMany<serde_with::Same>,
2852											>::deserialize(deserializer)?))
2853										}
2854									}
2855									match map.next_value::<DeserializeWith>() {
2856										Ok(deserialize_with) => deserialize_with.0,
2857										Err(err) => {
2858											return Err(err);
2859										}
2860									}
2861								});
2862							}
2863							Field::Description => {
2864								if r#description_property.is_some() {
2865									return Err(<A::Error as de::Error>::duplicate_field(
2866										"description",
2867									));
2868								}
2869								r#description_property = Some({
2870									struct DeserializeWith(Vec<DescriptionProperty>);
2871									impl<'de> Deserialize<'de> for DeserializeWith {
2872										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2873										where
2874											D: Deserializer<'de>,
2875										{
2876											Ok(DeserializeWith(serde_with::As::<
2877												serde_with::OneOrMany<serde_with::Same>,
2878											>::deserialize(deserializer)?))
2879										}
2880									}
2881									match map.next_value::<DeserializeWith>() {
2882										Ok(deserialize_with) => deserialize_with.0,
2883										Err(err) => {
2884											return Err(err);
2885										}
2886									}
2887								});
2888							}
2889							Field::DisambiguatingDescription => {
2890								if r#disambiguating_description_property.is_some() {
2891									return Err(<A::Error as de::Error>::duplicate_field(
2892										"disambiguatingDescription",
2893									));
2894								}
2895								r#disambiguating_description_property = Some({
2896									struct DeserializeWith(Vec<DisambiguatingDescriptionProperty>);
2897									impl<'de> Deserialize<'de> for DeserializeWith {
2898										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2899										where
2900											D: Deserializer<'de>,
2901										{
2902											Ok(DeserializeWith(serde_with::As::<
2903												serde_with::OneOrMany<serde_with::Same>,
2904											>::deserialize(deserializer)?))
2905										}
2906									}
2907									match map.next_value::<DeserializeWith>() {
2908										Ok(deserialize_with) => deserialize_with.0,
2909										Err(err) => {
2910											return Err(err);
2911										}
2912									}
2913								});
2914							}
2915							Field::Identifier => {
2916								if r#identifier_property.is_some() {
2917									return Err(<A::Error as de::Error>::duplicate_field(
2918										"identifier",
2919									));
2920								}
2921								r#identifier_property = Some({
2922									struct DeserializeWith(Vec<IdentifierProperty>);
2923									impl<'de> Deserialize<'de> for DeserializeWith {
2924										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2925										where
2926											D: Deserializer<'de>,
2927										{
2928											Ok(DeserializeWith(serde_with::As::<
2929												serde_with::OneOrMany<serde_with::Same>,
2930											>::deserialize(deserializer)?))
2931										}
2932									}
2933									match map.next_value::<DeserializeWith>() {
2934										Ok(deserialize_with) => deserialize_with.0,
2935										Err(err) => {
2936											return Err(err);
2937										}
2938									}
2939								});
2940							}
2941							Field::Image => {
2942								if r#image_property.is_some() {
2943									return Err(<A::Error as de::Error>::duplicate_field("image"));
2944								}
2945								r#image_property = Some({
2946									struct DeserializeWith(Vec<ImageProperty>);
2947									impl<'de> Deserialize<'de> for DeserializeWith {
2948										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2949										where
2950											D: Deserializer<'de>,
2951										{
2952											Ok(DeserializeWith(serde_with::As::<
2953												serde_with::OneOrMany<serde_with::Same>,
2954											>::deserialize(deserializer)?))
2955										}
2956									}
2957									match map.next_value::<DeserializeWith>() {
2958										Ok(deserialize_with) => deserialize_with.0,
2959										Err(err) => {
2960											return Err(err);
2961										}
2962									}
2963								});
2964							}
2965							Field::MainEntityOfPage => {
2966								if r#main_entity_of_page_property.is_some() {
2967									return Err(<A::Error as de::Error>::duplicate_field(
2968										"mainEntityOfPage",
2969									));
2970								}
2971								r#main_entity_of_page_property = Some({
2972									struct DeserializeWith(Vec<MainEntityOfPageProperty>);
2973									impl<'de> Deserialize<'de> for DeserializeWith {
2974										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2975										where
2976											D: Deserializer<'de>,
2977										{
2978											Ok(DeserializeWith(serde_with::As::<
2979												serde_with::OneOrMany<serde_with::Same>,
2980											>::deserialize(deserializer)?))
2981										}
2982									}
2983									match map.next_value::<DeserializeWith>() {
2984										Ok(deserialize_with) => deserialize_with.0,
2985										Err(err) => {
2986											return Err(err);
2987										}
2988									}
2989								});
2990							}
2991							Field::Name => {
2992								if r#name_property.is_some() {
2993									return Err(<A::Error as de::Error>::duplicate_field("name"));
2994								}
2995								r#name_property = Some({
2996									struct DeserializeWith(Vec<NameProperty>);
2997									impl<'de> Deserialize<'de> for DeserializeWith {
2998										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2999										where
3000											D: Deserializer<'de>,
3001										{
3002											Ok(DeserializeWith(serde_with::As::<
3003												serde_with::OneOrMany<serde_with::Same>,
3004											>::deserialize(deserializer)?))
3005										}
3006									}
3007									match map.next_value::<DeserializeWith>() {
3008										Ok(deserialize_with) => deserialize_with.0,
3009										Err(err) => {
3010											return Err(err);
3011										}
3012									}
3013								});
3014							}
3015							Field::PotentialAction => {
3016								if r#potential_action_property.is_some() {
3017									return Err(<A::Error as de::Error>::duplicate_field(
3018										"potentialAction",
3019									));
3020								}
3021								r#potential_action_property = Some({
3022									struct DeserializeWith(Vec<PotentialActionProperty>);
3023									impl<'de> Deserialize<'de> for DeserializeWith {
3024										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3025										where
3026											D: Deserializer<'de>,
3027										{
3028											Ok(DeserializeWith(serde_with::As::<
3029												serde_with::OneOrMany<serde_with::Same>,
3030											>::deserialize(deserializer)?))
3031										}
3032									}
3033									match map.next_value::<DeserializeWith>() {
3034										Ok(deserialize_with) => deserialize_with.0,
3035										Err(err) => {
3036											return Err(err);
3037										}
3038									}
3039								});
3040							}
3041							Field::SameAs => {
3042								if r#same_as_property.is_some() {
3043									return Err(<A::Error as de::Error>::duplicate_field("sameAs"));
3044								}
3045								r#same_as_property = Some({
3046									struct DeserializeWith(Vec<SameAsProperty>);
3047									impl<'de> Deserialize<'de> for DeserializeWith {
3048										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3049										where
3050											D: Deserializer<'de>,
3051										{
3052											Ok(DeserializeWith(serde_with::As::<
3053												serde_with::OneOrMany<serde_with::Same>,
3054											>::deserialize(deserializer)?))
3055										}
3056									}
3057									match map.next_value::<DeserializeWith>() {
3058										Ok(deserialize_with) => deserialize_with.0,
3059										Err(err) => {
3060											return Err(err);
3061										}
3062									}
3063								});
3064							}
3065							Field::SubjectOf => {
3066								if r#subject_of_property.is_some() {
3067									return Err(<A::Error as de::Error>::duplicate_field(
3068										"subjectOf",
3069									));
3070								}
3071								r#subject_of_property = Some({
3072									struct DeserializeWith(Vec<SubjectOfProperty>);
3073									impl<'de> Deserialize<'de> for DeserializeWith {
3074										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3075										where
3076											D: Deserializer<'de>,
3077										{
3078											Ok(DeserializeWith(serde_with::As::<
3079												serde_with::OneOrMany<serde_with::Same>,
3080											>::deserialize(deserializer)?))
3081										}
3082									}
3083									match map.next_value::<DeserializeWith>() {
3084										Ok(deserialize_with) => deserialize_with.0,
3085										Err(err) => {
3086											return Err(err);
3087										}
3088									}
3089								});
3090							}
3091							Field::Url => {
3092								if r#url_property.is_some() {
3093									return Err(<A::Error as de::Error>::duplicate_field("url"));
3094								}
3095								r#url_property = Some({
3096									struct DeserializeWith(Vec<UrlProperty>);
3097									impl<'de> Deserialize<'de> for DeserializeWith {
3098										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3099										where
3100											D: Deserializer<'de>,
3101										{
3102											Ok(DeserializeWith(serde_with::As::<
3103												serde_with::OneOrMany<serde_with::Same>,
3104											>::deserialize(deserializer)?))
3105										}
3106									}
3107									match map.next_value::<DeserializeWith>() {
3108										Ok(deserialize_with) => deserialize_with.0,
3109										Err(err) => {
3110											return Err(err);
3111										}
3112									}
3113								});
3114							}
3115							Field::Ignore => {
3116								let _ = map.next_value::<de::IgnoredAny>()?;
3117							}
3118						}
3119					}
3120					Ok(SocialEvent {
3121						r#about: r#about_property.unwrap_or_default(),
3122						r#actor: r#actor_property.unwrap_or_default(),
3123						r#aggregate_rating: r#aggregate_rating_property.unwrap_or_default(),
3124						r#attendee: r#attendee_property.unwrap_or_default(),
3125						r#attendees: r#attendees_property.unwrap_or_default(),
3126						r#audience: r#audience_property.unwrap_or_default(),
3127						r#composer: r#composer_property.unwrap_or_default(),
3128						r#contributor: r#contributor_property.unwrap_or_default(),
3129						r#director: r#director_property.unwrap_or_default(),
3130						r#door_time: r#door_time_property.unwrap_or_default(),
3131						r#duration: r#duration_property.unwrap_or_default(),
3132						r#end_date: r#end_date_property.unwrap_or_default(),
3133						r#event_attendance_mode: r#event_attendance_mode_property
3134							.unwrap_or_default(),
3135						r#event_schedule: r#event_schedule_property.unwrap_or_default(),
3136						r#event_status: r#event_status_property.unwrap_or_default(),
3137						r#funder: r#funder_property.unwrap_or_default(),
3138						r#funding: r#funding_property.unwrap_or_default(),
3139						r#in_language: r#in_language_property.unwrap_or_default(),
3140						r#is_accessible_for_free: r#is_accessible_for_free_property
3141							.unwrap_or_default(),
3142						r#keywords: r#keywords_property.unwrap_or_default(),
3143						r#location: r#location_property.unwrap_or_default(),
3144						r#maximum_attendee_capacity: r#maximum_attendee_capacity_property
3145							.unwrap_or_default(),
3146						r#maximum_physical_attendee_capacity:
3147							r#maximum_physical_attendee_capacity_property.unwrap_or_default(),
3148						r#maximum_virtual_attendee_capacity:
3149							r#maximum_virtual_attendee_capacity_property.unwrap_or_default(),
3150						r#offers: r#offers_property.unwrap_or_default(),
3151						r#organizer: r#organizer_property.unwrap_or_default(),
3152						r#performer: r#performer_property.unwrap_or_default(),
3153						r#performers: r#performers_property.unwrap_or_default(),
3154						r#previous_start_date: r#previous_start_date_property.unwrap_or_default(),
3155						r#recorded_in: r#recorded_in_property.unwrap_or_default(),
3156						r#remaining_attendee_capacity: r#remaining_attendee_capacity_property
3157							.unwrap_or_default(),
3158						r#review: r#review_property.unwrap_or_default(),
3159						r#sponsor: r#sponsor_property.unwrap_or_default(),
3160						r#start_date: r#start_date_property.unwrap_or_default(),
3161						r#sub_event: r#sub_event_property.unwrap_or_default(),
3162						r#sub_events: r#sub_events_property.unwrap_or_default(),
3163						r#super_event: r#super_event_property.unwrap_or_default(),
3164						r#translator: r#translator_property.unwrap_or_default(),
3165						r#typical_age_range: r#typical_age_range_property.unwrap_or_default(),
3166						r#work_featured: r#work_featured_property.unwrap_or_default(),
3167						r#work_performed: r#work_performed_property.unwrap_or_default(),
3168						r#additional_type: r#additional_type_property.unwrap_or_default(),
3169						r#alternate_name: r#alternate_name_property.unwrap_or_default(),
3170						r#description: r#description_property.unwrap_or_default(),
3171						r#disambiguating_description: r#disambiguating_description_property
3172							.unwrap_or_default(),
3173						r#identifier: r#identifier_property.unwrap_or_default(),
3174						r#image: r#image_property.unwrap_or_default(),
3175						r#main_entity_of_page: r#main_entity_of_page_property.unwrap_or_default(),
3176						r#name: r#name_property.unwrap_or_default(),
3177						r#potential_action: r#potential_action_property.unwrap_or_default(),
3178						r#same_as: r#same_as_property.unwrap_or_default(),
3179						r#subject_of: r#subject_of_property.unwrap_or_default(),
3180						r#url: r#url_property.unwrap_or_default(),
3181					})
3182				}
3183			}
3184			const FIELDS: &[&str] = &[
3185				"about",
3186				"actor",
3187				"aggregateRating",
3188				"attendee",
3189				"attendees",
3190				"audience",
3191				"composer",
3192				"contributor",
3193				"director",
3194				"doorTime",
3195				"duration",
3196				"endDate",
3197				"eventAttendanceMode",
3198				"eventSchedule",
3199				"eventStatus",
3200				"funder",
3201				"funding",
3202				"inLanguage",
3203				"isAccessibleForFree",
3204				"keywords",
3205				"location",
3206				"maximumAttendeeCapacity",
3207				"maximumPhysicalAttendeeCapacity",
3208				"maximumVirtualAttendeeCapacity",
3209				"offers",
3210				"organizer",
3211				"performer",
3212				"performers",
3213				"previousStartDate",
3214				"recordedIn",
3215				"remainingAttendeeCapacity",
3216				"review",
3217				"sponsor",
3218				"startDate",
3219				"subEvent",
3220				"subEvents",
3221				"superEvent",
3222				"translator",
3223				"typicalAgeRange",
3224				"workFeatured",
3225				"workPerformed",
3226				"additionalType",
3227				"alternateName",
3228				"description",
3229				"disambiguatingDescription",
3230				"identifier",
3231				"image",
3232				"mainEntityOfPage",
3233				"name",
3234				"potentialAction",
3235				"sameAs",
3236				"subjectOf",
3237				"url",
3238			];
3239			deserializer.deserialize_struct("SocialEvent", FIELDS, ClassVisitor)
3240		}
3241	}
3242}