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