1use super::*;
2#[cfg_attr(feature = "derive-debug", derive(Debug))]
4#[cfg_attr(feature = "derive-clone", derive(Clone))]
5pub struct MedicalSign {
6 pub r#identifying_exam: Vec<IdentifyingExamProperty>,
8 pub r#identifying_test: Vec<IdentifyingTestProperty>,
10 pub r#associated_anatomy: Vec<AssociatedAnatomyProperty>,
12 pub r#differential_diagnosis: Vec<DifferentialDiagnosisProperty>,
14 pub r#drug: Vec<DrugProperty>,
16 pub r#epidemiology: Vec<EpidemiologyProperty>,
18 pub r#expected_prognosis: Vec<ExpectedPrognosisProperty>,
20 pub r#natural_progression: Vec<NaturalProgressionProperty>,
22 pub r#pathophysiology: Vec<PathophysiologyProperty>,
24 pub r#possible_complication: Vec<PossibleComplicationProperty>,
26 pub r#possible_treatment: Vec<PossibleTreatmentProperty>,
28 pub r#primary_prevention: Vec<PrimaryPreventionProperty>,
30 pub r#risk_factor: Vec<RiskFactorProperty>,
32 pub r#secondary_prevention: Vec<SecondaryPreventionProperty>,
34 pub r#sign_or_symptom: Vec<SignOrSymptomProperty>,
36 pub r#stage: Vec<StageProperty>,
38 pub r#status: Vec<StatusProperty>,
40 pub r#typical_test: Vec<TypicalTestProperty>,
42 pub r#code: Vec<CodeProperty>,
44 pub r#funding: Vec<FundingProperty>,
46 pub r#guideline: Vec<GuidelineProperty>,
48 pub r#legal_status: Vec<LegalStatusProperty>,
50 pub r#medicine_system: Vec<MedicineSystemProperty>,
52 pub r#recognizing_authority: Vec<RecognizingAuthorityProperty>,
54 pub r#relevant_specialty: Vec<RelevantSpecialtyProperty>,
56 pub r#study: Vec<StudyProperty>,
58 pub r#additional_type: Vec<AdditionalTypeProperty>,
60 pub r#alternate_name: Vec<AlternateNameProperty>,
62 pub r#description: Vec<DescriptionProperty>,
64 pub r#disambiguating_description: Vec<DisambiguatingDescriptionProperty>,
66 pub r#identifier: Vec<IdentifierProperty>,
68 pub r#image: Vec<ImageProperty>,
70 pub r#main_entity_of_page: Vec<MainEntityOfPageProperty>,
72 pub r#name: Vec<NameProperty>,
74 pub r#potential_action: Vec<PotentialActionProperty>,
76 pub r#same_as: Vec<SameAsProperty>,
78 pub r#subject_of: Vec<SubjectOfProperty>,
80 pub r#url: Vec<UrlProperty>,
82}
83pub trait MedicalSignTrait {
85 fn get_identifying_exam(&self) -> &[IdentifyingExamProperty];
87 fn take_identifying_exam(&mut self) -> Vec<IdentifyingExamProperty>;
89 fn get_identifying_test(&self) -> &[IdentifyingTestProperty];
91 fn take_identifying_test(&mut self) -> Vec<IdentifyingTestProperty>;
93}
94impl MedicalSignTrait for MedicalSign {
95 fn get_identifying_exam(&self) -> &[IdentifyingExamProperty] {
96 self.r#identifying_exam.as_slice()
97 }
98 fn take_identifying_exam(&mut self) -> Vec<IdentifyingExamProperty> {
99 std::mem::take(&mut self.r#identifying_exam)
100 }
101 fn get_identifying_test(&self) -> &[IdentifyingTestProperty] {
102 self.r#identifying_test.as_slice()
103 }
104 fn take_identifying_test(&mut self) -> Vec<IdentifyingTestProperty> {
105 std::mem::take(&mut self.r#identifying_test)
106 }
107}
108impl MedicalConditionTrait for MedicalSign {
109 fn get_associated_anatomy(&self) -> &[AssociatedAnatomyProperty] {
110 self.r#associated_anatomy.as_slice()
111 }
112 fn take_associated_anatomy(&mut self) -> Vec<AssociatedAnatomyProperty> {
113 std::mem::take(&mut self.r#associated_anatomy)
114 }
115 fn get_differential_diagnosis(&self) -> &[DifferentialDiagnosisProperty] {
116 self.r#differential_diagnosis.as_slice()
117 }
118 fn take_differential_diagnosis(&mut self) -> Vec<DifferentialDiagnosisProperty> {
119 std::mem::take(&mut self.r#differential_diagnosis)
120 }
121 fn get_drug(&self) -> &[DrugProperty] {
122 self.r#drug.as_slice()
123 }
124 fn take_drug(&mut self) -> Vec<DrugProperty> {
125 std::mem::take(&mut self.r#drug)
126 }
127 fn get_epidemiology(&self) -> &[EpidemiologyProperty] {
128 self.r#epidemiology.as_slice()
129 }
130 fn take_epidemiology(&mut self) -> Vec<EpidemiologyProperty> {
131 std::mem::take(&mut self.r#epidemiology)
132 }
133 fn get_expected_prognosis(&self) -> &[ExpectedPrognosisProperty] {
134 self.r#expected_prognosis.as_slice()
135 }
136 fn take_expected_prognosis(&mut self) -> Vec<ExpectedPrognosisProperty> {
137 std::mem::take(&mut self.r#expected_prognosis)
138 }
139 fn get_natural_progression(&self) -> &[NaturalProgressionProperty] {
140 self.r#natural_progression.as_slice()
141 }
142 fn take_natural_progression(&mut self) -> Vec<NaturalProgressionProperty> {
143 std::mem::take(&mut self.r#natural_progression)
144 }
145 fn get_pathophysiology(&self) -> &[PathophysiologyProperty] {
146 self.r#pathophysiology.as_slice()
147 }
148 fn take_pathophysiology(&mut self) -> Vec<PathophysiologyProperty> {
149 std::mem::take(&mut self.r#pathophysiology)
150 }
151 fn get_possible_complication(&self) -> &[PossibleComplicationProperty] {
152 self.r#possible_complication.as_slice()
153 }
154 fn take_possible_complication(&mut self) -> Vec<PossibleComplicationProperty> {
155 std::mem::take(&mut self.r#possible_complication)
156 }
157 fn get_possible_treatment(&self) -> &[PossibleTreatmentProperty] {
158 self.r#possible_treatment.as_slice()
159 }
160 fn take_possible_treatment(&mut self) -> Vec<PossibleTreatmentProperty> {
161 std::mem::take(&mut self.r#possible_treatment)
162 }
163 fn get_primary_prevention(&self) -> &[PrimaryPreventionProperty] {
164 self.r#primary_prevention.as_slice()
165 }
166 fn take_primary_prevention(&mut self) -> Vec<PrimaryPreventionProperty> {
167 std::mem::take(&mut self.r#primary_prevention)
168 }
169 fn get_risk_factor(&self) -> &[RiskFactorProperty] {
170 self.r#risk_factor.as_slice()
171 }
172 fn take_risk_factor(&mut self) -> Vec<RiskFactorProperty> {
173 std::mem::take(&mut self.r#risk_factor)
174 }
175 fn get_secondary_prevention(&self) -> &[SecondaryPreventionProperty] {
176 self.r#secondary_prevention.as_slice()
177 }
178 fn take_secondary_prevention(&mut self) -> Vec<SecondaryPreventionProperty> {
179 std::mem::take(&mut self.r#secondary_prevention)
180 }
181 fn get_sign_or_symptom(&self) -> &[SignOrSymptomProperty] {
182 self.r#sign_or_symptom.as_slice()
183 }
184 fn take_sign_or_symptom(&mut self) -> Vec<SignOrSymptomProperty> {
185 std::mem::take(&mut self.r#sign_or_symptom)
186 }
187 fn get_stage(&self) -> &[StageProperty] {
188 self.r#stage.as_slice()
189 }
190 fn take_stage(&mut self) -> Vec<StageProperty> {
191 std::mem::take(&mut self.r#stage)
192 }
193 fn get_status(&self) -> &[StatusProperty] {
194 self.r#status.as_slice()
195 }
196 fn take_status(&mut self) -> Vec<StatusProperty> {
197 std::mem::take(&mut self.r#status)
198 }
199 fn get_typical_test(&self) -> &[TypicalTestProperty] {
200 self.r#typical_test.as_slice()
201 }
202 fn take_typical_test(&mut self) -> Vec<TypicalTestProperty> {
203 std::mem::take(&mut self.r#typical_test)
204 }
205}
206impl MedicalEntityTrait for MedicalSign {
207 fn get_code(&self) -> &[CodeProperty] {
208 self.r#code.as_slice()
209 }
210 fn take_code(&mut self) -> Vec<CodeProperty> {
211 std::mem::take(&mut self.r#code)
212 }
213 fn get_funding(&self) -> &[FundingProperty] {
214 self.r#funding.as_slice()
215 }
216 fn take_funding(&mut self) -> Vec<FundingProperty> {
217 std::mem::take(&mut self.r#funding)
218 }
219 fn get_guideline(&self) -> &[GuidelineProperty] {
220 self.r#guideline.as_slice()
221 }
222 fn take_guideline(&mut self) -> Vec<GuidelineProperty> {
223 std::mem::take(&mut self.r#guideline)
224 }
225 fn get_legal_status(&self) -> &[LegalStatusProperty] {
226 self.r#legal_status.as_slice()
227 }
228 fn take_legal_status(&mut self) -> Vec<LegalStatusProperty> {
229 std::mem::take(&mut self.r#legal_status)
230 }
231 fn get_medicine_system(&self) -> &[MedicineSystemProperty] {
232 self.r#medicine_system.as_slice()
233 }
234 fn take_medicine_system(&mut self) -> Vec<MedicineSystemProperty> {
235 std::mem::take(&mut self.r#medicine_system)
236 }
237 fn get_recognizing_authority(&self) -> &[RecognizingAuthorityProperty] {
238 self.r#recognizing_authority.as_slice()
239 }
240 fn take_recognizing_authority(&mut self) -> Vec<RecognizingAuthorityProperty> {
241 std::mem::take(&mut self.r#recognizing_authority)
242 }
243 fn get_relevant_specialty(&self) -> &[RelevantSpecialtyProperty] {
244 self.r#relevant_specialty.as_slice()
245 }
246 fn take_relevant_specialty(&mut self) -> Vec<RelevantSpecialtyProperty> {
247 std::mem::take(&mut self.r#relevant_specialty)
248 }
249 fn get_study(&self) -> &[StudyProperty] {
250 self.r#study.as_slice()
251 }
252 fn take_study(&mut self) -> Vec<StudyProperty> {
253 std::mem::take(&mut self.r#study)
254 }
255}
256impl MedicalSignOrSymptomTrait for MedicalSign {
257 fn get_possible_treatment(&self) -> &[PossibleTreatmentProperty] {
258 self.r#possible_treatment.as_slice()
259 }
260 fn take_possible_treatment(&mut self) -> Vec<PossibleTreatmentProperty> {
261 std::mem::take(&mut self.r#possible_treatment)
262 }
263}
264impl ThingTrait for MedicalSign {
265 fn get_additional_type(&self) -> &[AdditionalTypeProperty] {
266 self.r#additional_type.as_slice()
267 }
268 fn take_additional_type(&mut self) -> Vec<AdditionalTypeProperty> {
269 std::mem::take(&mut self.r#additional_type)
270 }
271 fn get_alternate_name(&self) -> &[AlternateNameProperty] {
272 self.r#alternate_name.as_slice()
273 }
274 fn take_alternate_name(&mut self) -> Vec<AlternateNameProperty> {
275 std::mem::take(&mut self.r#alternate_name)
276 }
277 fn get_description(&self) -> &[DescriptionProperty] {
278 self.r#description.as_slice()
279 }
280 fn take_description(&mut self) -> Vec<DescriptionProperty> {
281 std::mem::take(&mut self.r#description)
282 }
283 fn get_disambiguating_description(&self) -> &[DisambiguatingDescriptionProperty] {
284 self.r#disambiguating_description.as_slice()
285 }
286 fn take_disambiguating_description(&mut self) -> Vec<DisambiguatingDescriptionProperty> {
287 std::mem::take(&mut self.r#disambiguating_description)
288 }
289 fn get_identifier(&self) -> &[IdentifierProperty] {
290 self.r#identifier.as_slice()
291 }
292 fn take_identifier(&mut self) -> Vec<IdentifierProperty> {
293 std::mem::take(&mut self.r#identifier)
294 }
295 fn get_image(&self) -> &[ImageProperty] {
296 self.r#image.as_slice()
297 }
298 fn take_image(&mut self) -> Vec<ImageProperty> {
299 std::mem::take(&mut self.r#image)
300 }
301 fn get_main_entity_of_page(&self) -> &[MainEntityOfPageProperty] {
302 self.r#main_entity_of_page.as_slice()
303 }
304 fn take_main_entity_of_page(&mut self) -> Vec<MainEntityOfPageProperty> {
305 std::mem::take(&mut self.r#main_entity_of_page)
306 }
307 fn get_name(&self) -> &[NameProperty] {
308 self.r#name.as_slice()
309 }
310 fn take_name(&mut self) -> Vec<NameProperty> {
311 std::mem::take(&mut self.r#name)
312 }
313 fn get_potential_action(&self) -> &[PotentialActionProperty] {
314 self.r#potential_action.as_slice()
315 }
316 fn take_potential_action(&mut self) -> Vec<PotentialActionProperty> {
317 std::mem::take(&mut self.r#potential_action)
318 }
319 fn get_same_as(&self) -> &[SameAsProperty] {
320 self.r#same_as.as_slice()
321 }
322 fn take_same_as(&mut self) -> Vec<SameAsProperty> {
323 std::mem::take(&mut self.r#same_as)
324 }
325 fn get_subject_of(&self) -> &[SubjectOfProperty] {
326 self.r#subject_of.as_slice()
327 }
328 fn take_subject_of(&mut self) -> Vec<SubjectOfProperty> {
329 std::mem::take(&mut self.r#subject_of)
330 }
331 fn get_url(&self) -> &[UrlProperty] {
332 self.r#url.as_slice()
333 }
334 fn take_url(&mut self) -> Vec<UrlProperty> {
335 std::mem::take(&mut self.r#url)
336 }
337}
338#[cfg(feature = "serde")]
339mod serde {
340 use std::{fmt, fmt::Formatter};
341
342 use ::serde::{
343 de, de::Visitor, ser::SerializeStruct, Deserialize, Deserializer, Serialize, Serializer,
344 };
345
346 use super::*;
347 impl Serialize for MedicalSign {
348 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
349 where
350 S: Serializer,
351 {
352 let len: usize = [
353 !Vec::is_empty(&self.r#identifying_exam) as usize,
354 !Vec::is_empty(&self.r#identifying_test) as usize,
355 !Vec::is_empty(&self.r#associated_anatomy) as usize,
356 !Vec::is_empty(&self.r#differential_diagnosis) as usize,
357 !Vec::is_empty(&self.r#drug) as usize,
358 !Vec::is_empty(&self.r#epidemiology) as usize,
359 !Vec::is_empty(&self.r#expected_prognosis) as usize,
360 !Vec::is_empty(&self.r#natural_progression) as usize,
361 !Vec::is_empty(&self.r#pathophysiology) as usize,
362 !Vec::is_empty(&self.r#possible_complication) as usize,
363 !Vec::is_empty(&self.r#possible_treatment) as usize,
364 !Vec::is_empty(&self.r#primary_prevention) as usize,
365 !Vec::is_empty(&self.r#risk_factor) as usize,
366 !Vec::is_empty(&self.r#secondary_prevention) as usize,
367 !Vec::is_empty(&self.r#sign_or_symptom) as usize,
368 !Vec::is_empty(&self.r#stage) as usize,
369 !Vec::is_empty(&self.r#status) as usize,
370 !Vec::is_empty(&self.r#typical_test) as usize,
371 !Vec::is_empty(&self.r#code) as usize,
372 !Vec::is_empty(&self.r#funding) as usize,
373 !Vec::is_empty(&self.r#guideline) as usize,
374 !Vec::is_empty(&self.r#legal_status) as usize,
375 !Vec::is_empty(&self.r#medicine_system) as usize,
376 !Vec::is_empty(&self.r#recognizing_authority) as usize,
377 !Vec::is_empty(&self.r#relevant_specialty) as usize,
378 !Vec::is_empty(&self.r#study) as usize,
379 !Vec::is_empty(&self.r#additional_type) as usize,
380 !Vec::is_empty(&self.r#alternate_name) as usize,
381 !Vec::is_empty(&self.r#description) as usize,
382 !Vec::is_empty(&self.r#disambiguating_description) as usize,
383 !Vec::is_empty(&self.r#identifier) as usize,
384 !Vec::is_empty(&self.r#image) as usize,
385 !Vec::is_empty(&self.r#main_entity_of_page) as usize,
386 !Vec::is_empty(&self.r#name) as usize,
387 !Vec::is_empty(&self.r#potential_action) as usize,
388 !Vec::is_empty(&self.r#same_as) as usize,
389 !Vec::is_empty(&self.r#subject_of) as usize,
390 !Vec::is_empty(&self.r#url) as usize,
391 ]
392 .iter()
393 .sum();
394 let mut serialize_struct =
395 Serializer::serialize_struct(serializer, "MedicalSign", len)?;
396 if !Vec::is_empty(&self.r#identifying_exam) {
397 serialize_struct.serialize_field("identifyingExam", {
398 struct SerializeWith<'a>(&'a Vec<IdentifyingExamProperty>);
399 impl<'a> Serialize for SerializeWith<'a> {
400 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
401 where
402 S: Serializer,
403 {
404 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
405 self.0, serializer,
406 )
407 }
408 }
409 &SerializeWith(&self.r#identifying_exam)
410 })?;
411 } else {
412 serialize_struct.skip_field("identifyingExam")?;
413 }
414 if !Vec::is_empty(&self.r#identifying_test) {
415 serialize_struct.serialize_field("identifyingTest", {
416 struct SerializeWith<'a>(&'a Vec<IdentifyingTestProperty>);
417 impl<'a> Serialize for SerializeWith<'a> {
418 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
419 where
420 S: Serializer,
421 {
422 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
423 self.0, serializer,
424 )
425 }
426 }
427 &SerializeWith(&self.r#identifying_test)
428 })?;
429 } else {
430 serialize_struct.skip_field("identifyingTest")?;
431 }
432 if !Vec::is_empty(&self.r#associated_anatomy) {
433 serialize_struct.serialize_field("associatedAnatomy", {
434 struct SerializeWith<'a>(&'a Vec<AssociatedAnatomyProperty>);
435 impl<'a> Serialize for SerializeWith<'a> {
436 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
437 where
438 S: Serializer,
439 {
440 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
441 self.0, serializer,
442 )
443 }
444 }
445 &SerializeWith(&self.r#associated_anatomy)
446 })?;
447 } else {
448 serialize_struct.skip_field("associatedAnatomy")?;
449 }
450 if !Vec::is_empty(&self.r#differential_diagnosis) {
451 serialize_struct.serialize_field("differentialDiagnosis", {
452 struct SerializeWith<'a>(&'a Vec<DifferentialDiagnosisProperty>);
453 impl<'a> Serialize for SerializeWith<'a> {
454 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
455 where
456 S: Serializer,
457 {
458 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
459 self.0, serializer,
460 )
461 }
462 }
463 &SerializeWith(&self.r#differential_diagnosis)
464 })?;
465 } else {
466 serialize_struct.skip_field("differentialDiagnosis")?;
467 }
468 if !Vec::is_empty(&self.r#drug) {
469 serialize_struct.serialize_field("drug", {
470 struct SerializeWith<'a>(&'a Vec<DrugProperty>);
471 impl<'a> Serialize for SerializeWith<'a> {
472 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
473 where
474 S: Serializer,
475 {
476 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
477 self.0, serializer,
478 )
479 }
480 }
481 &SerializeWith(&self.r#drug)
482 })?;
483 } else {
484 serialize_struct.skip_field("drug")?;
485 }
486 if !Vec::is_empty(&self.r#epidemiology) {
487 serialize_struct.serialize_field("epidemiology", {
488 struct SerializeWith<'a>(&'a Vec<EpidemiologyProperty>);
489 impl<'a> Serialize for SerializeWith<'a> {
490 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
491 where
492 S: Serializer,
493 {
494 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
495 self.0, serializer,
496 )
497 }
498 }
499 &SerializeWith(&self.r#epidemiology)
500 })?;
501 } else {
502 serialize_struct.skip_field("epidemiology")?;
503 }
504 if !Vec::is_empty(&self.r#expected_prognosis) {
505 serialize_struct.serialize_field("expectedPrognosis", {
506 struct SerializeWith<'a>(&'a Vec<ExpectedPrognosisProperty>);
507 impl<'a> Serialize for SerializeWith<'a> {
508 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
509 where
510 S: Serializer,
511 {
512 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
513 self.0, serializer,
514 )
515 }
516 }
517 &SerializeWith(&self.r#expected_prognosis)
518 })?;
519 } else {
520 serialize_struct.skip_field("expectedPrognosis")?;
521 }
522 if !Vec::is_empty(&self.r#natural_progression) {
523 serialize_struct.serialize_field("naturalProgression", {
524 struct SerializeWith<'a>(&'a Vec<NaturalProgressionProperty>);
525 impl<'a> Serialize for SerializeWith<'a> {
526 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
527 where
528 S: Serializer,
529 {
530 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
531 self.0, serializer,
532 )
533 }
534 }
535 &SerializeWith(&self.r#natural_progression)
536 })?;
537 } else {
538 serialize_struct.skip_field("naturalProgression")?;
539 }
540 if !Vec::is_empty(&self.r#pathophysiology) {
541 serialize_struct.serialize_field("pathophysiology", {
542 struct SerializeWith<'a>(&'a Vec<PathophysiologyProperty>);
543 impl<'a> Serialize for SerializeWith<'a> {
544 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
545 where
546 S: Serializer,
547 {
548 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
549 self.0, serializer,
550 )
551 }
552 }
553 &SerializeWith(&self.r#pathophysiology)
554 })?;
555 } else {
556 serialize_struct.skip_field("pathophysiology")?;
557 }
558 if !Vec::is_empty(&self.r#possible_complication) {
559 serialize_struct.serialize_field("possibleComplication", {
560 struct SerializeWith<'a>(&'a Vec<PossibleComplicationProperty>);
561 impl<'a> Serialize for SerializeWith<'a> {
562 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
563 where
564 S: Serializer,
565 {
566 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
567 self.0, serializer,
568 )
569 }
570 }
571 &SerializeWith(&self.r#possible_complication)
572 })?;
573 } else {
574 serialize_struct.skip_field("possibleComplication")?;
575 }
576 if !Vec::is_empty(&self.r#possible_treatment) {
577 serialize_struct.serialize_field("possibleTreatment", {
578 struct SerializeWith<'a>(&'a Vec<PossibleTreatmentProperty>);
579 impl<'a> Serialize for SerializeWith<'a> {
580 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
581 where
582 S: Serializer,
583 {
584 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
585 self.0, serializer,
586 )
587 }
588 }
589 &SerializeWith(&self.r#possible_treatment)
590 })?;
591 } else {
592 serialize_struct.skip_field("possibleTreatment")?;
593 }
594 if !Vec::is_empty(&self.r#primary_prevention) {
595 serialize_struct.serialize_field("primaryPrevention", {
596 struct SerializeWith<'a>(&'a Vec<PrimaryPreventionProperty>);
597 impl<'a> Serialize for SerializeWith<'a> {
598 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
599 where
600 S: Serializer,
601 {
602 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
603 self.0, serializer,
604 )
605 }
606 }
607 &SerializeWith(&self.r#primary_prevention)
608 })?;
609 } else {
610 serialize_struct.skip_field("primaryPrevention")?;
611 }
612 if !Vec::is_empty(&self.r#risk_factor) {
613 serialize_struct.serialize_field("riskFactor", {
614 struct SerializeWith<'a>(&'a Vec<RiskFactorProperty>);
615 impl<'a> Serialize for SerializeWith<'a> {
616 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
617 where
618 S: Serializer,
619 {
620 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
621 self.0, serializer,
622 )
623 }
624 }
625 &SerializeWith(&self.r#risk_factor)
626 })?;
627 } else {
628 serialize_struct.skip_field("riskFactor")?;
629 }
630 if !Vec::is_empty(&self.r#secondary_prevention) {
631 serialize_struct.serialize_field("secondaryPrevention", {
632 struct SerializeWith<'a>(&'a Vec<SecondaryPreventionProperty>);
633 impl<'a> Serialize for SerializeWith<'a> {
634 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
635 where
636 S: Serializer,
637 {
638 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
639 self.0, serializer,
640 )
641 }
642 }
643 &SerializeWith(&self.r#secondary_prevention)
644 })?;
645 } else {
646 serialize_struct.skip_field("secondaryPrevention")?;
647 }
648 if !Vec::is_empty(&self.r#sign_or_symptom) {
649 serialize_struct.serialize_field("signOrSymptom", {
650 struct SerializeWith<'a>(&'a Vec<SignOrSymptomProperty>);
651 impl<'a> Serialize for SerializeWith<'a> {
652 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
653 where
654 S: Serializer,
655 {
656 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
657 self.0, serializer,
658 )
659 }
660 }
661 &SerializeWith(&self.r#sign_or_symptom)
662 })?;
663 } else {
664 serialize_struct.skip_field("signOrSymptom")?;
665 }
666 if !Vec::is_empty(&self.r#stage) {
667 serialize_struct.serialize_field("stage", {
668 struct SerializeWith<'a>(&'a Vec<StageProperty>);
669 impl<'a> Serialize for SerializeWith<'a> {
670 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
671 where
672 S: Serializer,
673 {
674 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
675 self.0, serializer,
676 )
677 }
678 }
679 &SerializeWith(&self.r#stage)
680 })?;
681 } else {
682 serialize_struct.skip_field("stage")?;
683 }
684 if !Vec::is_empty(&self.r#status) {
685 serialize_struct.serialize_field("status", {
686 struct SerializeWith<'a>(&'a Vec<StatusProperty>);
687 impl<'a> Serialize for SerializeWith<'a> {
688 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
689 where
690 S: Serializer,
691 {
692 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
693 self.0, serializer,
694 )
695 }
696 }
697 &SerializeWith(&self.r#status)
698 })?;
699 } else {
700 serialize_struct.skip_field("status")?;
701 }
702 if !Vec::is_empty(&self.r#typical_test) {
703 serialize_struct.serialize_field("typicalTest", {
704 struct SerializeWith<'a>(&'a Vec<TypicalTestProperty>);
705 impl<'a> Serialize for SerializeWith<'a> {
706 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
707 where
708 S: Serializer,
709 {
710 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
711 self.0, serializer,
712 )
713 }
714 }
715 &SerializeWith(&self.r#typical_test)
716 })?;
717 } else {
718 serialize_struct.skip_field("typicalTest")?;
719 }
720 if !Vec::is_empty(&self.r#code) {
721 serialize_struct.serialize_field("code", {
722 struct SerializeWith<'a>(&'a Vec<CodeProperty>);
723 impl<'a> Serialize for SerializeWith<'a> {
724 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
725 where
726 S: Serializer,
727 {
728 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
729 self.0, serializer,
730 )
731 }
732 }
733 &SerializeWith(&self.r#code)
734 })?;
735 } else {
736 serialize_struct.skip_field("code")?;
737 }
738 if !Vec::is_empty(&self.r#funding) {
739 serialize_struct.serialize_field("funding", {
740 struct SerializeWith<'a>(&'a Vec<FundingProperty>);
741 impl<'a> Serialize for SerializeWith<'a> {
742 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
743 where
744 S: Serializer,
745 {
746 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
747 self.0, serializer,
748 )
749 }
750 }
751 &SerializeWith(&self.r#funding)
752 })?;
753 } else {
754 serialize_struct.skip_field("funding")?;
755 }
756 if !Vec::is_empty(&self.r#guideline) {
757 serialize_struct.serialize_field("guideline", {
758 struct SerializeWith<'a>(&'a Vec<GuidelineProperty>);
759 impl<'a> Serialize for SerializeWith<'a> {
760 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
761 where
762 S: Serializer,
763 {
764 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
765 self.0, serializer,
766 )
767 }
768 }
769 &SerializeWith(&self.r#guideline)
770 })?;
771 } else {
772 serialize_struct.skip_field("guideline")?;
773 }
774 if !Vec::is_empty(&self.r#legal_status) {
775 serialize_struct.serialize_field("legalStatus", {
776 struct SerializeWith<'a>(&'a Vec<LegalStatusProperty>);
777 impl<'a> Serialize for SerializeWith<'a> {
778 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
779 where
780 S: Serializer,
781 {
782 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
783 self.0, serializer,
784 )
785 }
786 }
787 &SerializeWith(&self.r#legal_status)
788 })?;
789 } else {
790 serialize_struct.skip_field("legalStatus")?;
791 }
792 if !Vec::is_empty(&self.r#medicine_system) {
793 serialize_struct.serialize_field("medicineSystem", {
794 struct SerializeWith<'a>(&'a Vec<MedicineSystemProperty>);
795 impl<'a> Serialize for SerializeWith<'a> {
796 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
797 where
798 S: Serializer,
799 {
800 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
801 self.0, serializer,
802 )
803 }
804 }
805 &SerializeWith(&self.r#medicine_system)
806 })?;
807 } else {
808 serialize_struct.skip_field("medicineSystem")?;
809 }
810 if !Vec::is_empty(&self.r#recognizing_authority) {
811 serialize_struct.serialize_field("recognizingAuthority", {
812 struct SerializeWith<'a>(&'a Vec<RecognizingAuthorityProperty>);
813 impl<'a> Serialize for SerializeWith<'a> {
814 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
815 where
816 S: Serializer,
817 {
818 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
819 self.0, serializer,
820 )
821 }
822 }
823 &SerializeWith(&self.r#recognizing_authority)
824 })?;
825 } else {
826 serialize_struct.skip_field("recognizingAuthority")?;
827 }
828 if !Vec::is_empty(&self.r#relevant_specialty) {
829 serialize_struct.serialize_field("relevantSpecialty", {
830 struct SerializeWith<'a>(&'a Vec<RelevantSpecialtyProperty>);
831 impl<'a> Serialize for SerializeWith<'a> {
832 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
833 where
834 S: Serializer,
835 {
836 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
837 self.0, serializer,
838 )
839 }
840 }
841 &SerializeWith(&self.r#relevant_specialty)
842 })?;
843 } else {
844 serialize_struct.skip_field("relevantSpecialty")?;
845 }
846 if !Vec::is_empty(&self.r#study) {
847 serialize_struct.serialize_field("study", {
848 struct SerializeWith<'a>(&'a Vec<StudyProperty>);
849 impl<'a> Serialize for SerializeWith<'a> {
850 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
851 where
852 S: Serializer,
853 {
854 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
855 self.0, serializer,
856 )
857 }
858 }
859 &SerializeWith(&self.r#study)
860 })?;
861 } else {
862 serialize_struct.skip_field("study")?;
863 }
864 if !Vec::is_empty(&self.r#additional_type) {
865 serialize_struct.serialize_field("additionalType", {
866 struct SerializeWith<'a>(&'a Vec<AdditionalTypeProperty>);
867 impl<'a> Serialize for SerializeWith<'a> {
868 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
869 where
870 S: Serializer,
871 {
872 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
873 self.0, serializer,
874 )
875 }
876 }
877 &SerializeWith(&self.r#additional_type)
878 })?;
879 } else {
880 serialize_struct.skip_field("additionalType")?;
881 }
882 if !Vec::is_empty(&self.r#alternate_name) {
883 serialize_struct.serialize_field("alternateName", {
884 struct SerializeWith<'a>(&'a Vec<AlternateNameProperty>);
885 impl<'a> Serialize for SerializeWith<'a> {
886 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
887 where
888 S: Serializer,
889 {
890 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
891 self.0, serializer,
892 )
893 }
894 }
895 &SerializeWith(&self.r#alternate_name)
896 })?;
897 } else {
898 serialize_struct.skip_field("alternateName")?;
899 }
900 if !Vec::is_empty(&self.r#description) {
901 serialize_struct.serialize_field("description", {
902 struct SerializeWith<'a>(&'a Vec<DescriptionProperty>);
903 impl<'a> Serialize for SerializeWith<'a> {
904 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
905 where
906 S: Serializer,
907 {
908 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
909 self.0, serializer,
910 )
911 }
912 }
913 &SerializeWith(&self.r#description)
914 })?;
915 } else {
916 serialize_struct.skip_field("description")?;
917 }
918 if !Vec::is_empty(&self.r#disambiguating_description) {
919 serialize_struct.serialize_field("disambiguatingDescription", {
920 struct SerializeWith<'a>(&'a Vec<DisambiguatingDescriptionProperty>);
921 impl<'a> Serialize for SerializeWith<'a> {
922 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
923 where
924 S: Serializer,
925 {
926 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
927 self.0, serializer,
928 )
929 }
930 }
931 &SerializeWith(&self.r#disambiguating_description)
932 })?;
933 } else {
934 serialize_struct.skip_field("disambiguatingDescription")?;
935 }
936 if !Vec::is_empty(&self.r#identifier) {
937 serialize_struct.serialize_field("identifier", {
938 struct SerializeWith<'a>(&'a Vec<IdentifierProperty>);
939 impl<'a> Serialize for SerializeWith<'a> {
940 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
941 where
942 S: Serializer,
943 {
944 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
945 self.0, serializer,
946 )
947 }
948 }
949 &SerializeWith(&self.r#identifier)
950 })?;
951 } else {
952 serialize_struct.skip_field("identifier")?;
953 }
954 if !Vec::is_empty(&self.r#image) {
955 serialize_struct.serialize_field("image", {
956 struct SerializeWith<'a>(&'a Vec<ImageProperty>);
957 impl<'a> Serialize for SerializeWith<'a> {
958 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
959 where
960 S: Serializer,
961 {
962 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
963 self.0, serializer,
964 )
965 }
966 }
967 &SerializeWith(&self.r#image)
968 })?;
969 } else {
970 serialize_struct.skip_field("image")?;
971 }
972 if !Vec::is_empty(&self.r#main_entity_of_page) {
973 serialize_struct.serialize_field("mainEntityOfPage", {
974 struct SerializeWith<'a>(&'a Vec<MainEntityOfPageProperty>);
975 impl<'a> Serialize for SerializeWith<'a> {
976 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
977 where
978 S: Serializer,
979 {
980 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
981 self.0, serializer,
982 )
983 }
984 }
985 &SerializeWith(&self.r#main_entity_of_page)
986 })?;
987 } else {
988 serialize_struct.skip_field("mainEntityOfPage")?;
989 }
990 if !Vec::is_empty(&self.r#name) {
991 serialize_struct.serialize_field("name", {
992 struct SerializeWith<'a>(&'a Vec<NameProperty>);
993 impl<'a> Serialize for SerializeWith<'a> {
994 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
995 where
996 S: Serializer,
997 {
998 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
999 self.0, serializer,
1000 )
1001 }
1002 }
1003 &SerializeWith(&self.r#name)
1004 })?;
1005 } else {
1006 serialize_struct.skip_field("name")?;
1007 }
1008 if !Vec::is_empty(&self.r#potential_action) {
1009 serialize_struct.serialize_field("potentialAction", {
1010 struct SerializeWith<'a>(&'a Vec<PotentialActionProperty>);
1011 impl<'a> Serialize for SerializeWith<'a> {
1012 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1013 where
1014 S: Serializer,
1015 {
1016 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1017 self.0, serializer,
1018 )
1019 }
1020 }
1021 &SerializeWith(&self.r#potential_action)
1022 })?;
1023 } else {
1024 serialize_struct.skip_field("potentialAction")?;
1025 }
1026 if !Vec::is_empty(&self.r#same_as) {
1027 serialize_struct.serialize_field("sameAs", {
1028 struct SerializeWith<'a>(&'a Vec<SameAsProperty>);
1029 impl<'a> Serialize for SerializeWith<'a> {
1030 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1031 where
1032 S: Serializer,
1033 {
1034 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1035 self.0, serializer,
1036 )
1037 }
1038 }
1039 &SerializeWith(&self.r#same_as)
1040 })?;
1041 } else {
1042 serialize_struct.skip_field("sameAs")?;
1043 }
1044 if !Vec::is_empty(&self.r#subject_of) {
1045 serialize_struct.serialize_field("subjectOf", {
1046 struct SerializeWith<'a>(&'a Vec<SubjectOfProperty>);
1047 impl<'a> Serialize for SerializeWith<'a> {
1048 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1049 where
1050 S: Serializer,
1051 {
1052 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1053 self.0, serializer,
1054 )
1055 }
1056 }
1057 &SerializeWith(&self.r#subject_of)
1058 })?;
1059 } else {
1060 serialize_struct.skip_field("subjectOf")?;
1061 }
1062 if !Vec::is_empty(&self.r#url) {
1063 serialize_struct.serialize_field("url", {
1064 struct SerializeWith<'a>(&'a Vec<UrlProperty>);
1065 impl<'a> Serialize for SerializeWith<'a> {
1066 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1067 where
1068 S: Serializer,
1069 {
1070 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1071 self.0, serializer,
1072 )
1073 }
1074 }
1075 &SerializeWith(&self.r#url)
1076 })?;
1077 } else {
1078 serialize_struct.skip_field("url")?;
1079 }
1080 serialize_struct.end()
1081 }
1082 }
1083 impl<'de> Deserialize<'de> for MedicalSign {
1084 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1085 where
1086 D: Deserializer<'de>,
1087 {
1088 enum Field {
1089 IdentifyingExam,
1090 IdentifyingTest,
1091 AssociatedAnatomy,
1092 DifferentialDiagnosis,
1093 Drug,
1094 Epidemiology,
1095 ExpectedPrognosis,
1096 NaturalProgression,
1097 Pathophysiology,
1098 PossibleComplication,
1099 PossibleTreatment,
1100 PrimaryPrevention,
1101 RiskFactor,
1102 SecondaryPrevention,
1103 SignOrSymptom,
1104 Stage,
1105 Status,
1106 TypicalTest,
1107 Code,
1108 Funding,
1109 Guideline,
1110 LegalStatus,
1111 MedicineSystem,
1112 RecognizingAuthority,
1113 RelevantSpecialty,
1114 Study,
1115 AdditionalType,
1116 AlternateName,
1117 Description,
1118 DisambiguatingDescription,
1119 Identifier,
1120 Image,
1121 MainEntityOfPage,
1122 Name,
1123 PotentialAction,
1124 SameAs,
1125 SubjectOf,
1126 Url,
1127 Ignore,
1128 }
1129 struct FieldVisitor;
1130 impl<'de> Visitor<'de> for FieldVisitor {
1131 type Value = Field;
1132 fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
1133 formatter.write_str("field identifier")
1134 }
1135 fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
1136 where
1137 E: de::Error,
1138 {
1139 match value {
1140 "identifyingExam" => Ok(Field::IdentifyingExam),
1141 "identifyingTest" => Ok(Field::IdentifyingTest),
1142 "associatedAnatomy" => Ok(Field::AssociatedAnatomy),
1143 "differentialDiagnosis" => Ok(Field::DifferentialDiagnosis),
1144 "drug" => Ok(Field::Drug),
1145 "epidemiology" => Ok(Field::Epidemiology),
1146 "expectedPrognosis" => Ok(Field::ExpectedPrognosis),
1147 "naturalProgression" => Ok(Field::NaturalProgression),
1148 "pathophysiology" => Ok(Field::Pathophysiology),
1149 "possibleComplication" => Ok(Field::PossibleComplication),
1150 "possibleTreatment" => Ok(Field::PossibleTreatment),
1151 "primaryPrevention" => Ok(Field::PrimaryPrevention),
1152 "riskFactor" => Ok(Field::RiskFactor),
1153 "secondaryPrevention" => Ok(Field::SecondaryPrevention),
1154 "signOrSymptom" => Ok(Field::SignOrSymptom),
1155 "stage" => Ok(Field::Stage),
1156 "status" => Ok(Field::Status),
1157 "typicalTest" => Ok(Field::TypicalTest),
1158 "code" => Ok(Field::Code),
1159 "funding" => Ok(Field::Funding),
1160 "guideline" => Ok(Field::Guideline),
1161 "legalStatus" => Ok(Field::LegalStatus),
1162 "medicineSystem" => Ok(Field::MedicineSystem),
1163 "recognizingAuthority" => Ok(Field::RecognizingAuthority),
1164 "relevantSpecialty" => Ok(Field::RelevantSpecialty),
1165 "study" => Ok(Field::Study),
1166 "additionalType" => Ok(Field::AdditionalType),
1167 "alternateName" => Ok(Field::AlternateName),
1168 "description" => Ok(Field::Description),
1169 "disambiguatingDescription" => Ok(Field::DisambiguatingDescription),
1170 "identifier" => Ok(Field::Identifier),
1171 "image" => Ok(Field::Image),
1172 "mainEntityOfPage" => Ok(Field::MainEntityOfPage),
1173 "name" => Ok(Field::Name),
1174 "potentialAction" => Ok(Field::PotentialAction),
1175 "sameAs" => Ok(Field::SameAs),
1176 "subjectOf" => Ok(Field::SubjectOf),
1177 "url" => Ok(Field::Url),
1178 "id" | "type" => Ok(Field::Ignore),
1179 _ => Err(de::Error::unknown_field(value, FIELDS)),
1180 }
1181 }
1182 fn visit_bytes<E>(self, value: &[u8]) -> Result<Self::Value, E>
1183 where
1184 E: de::Error,
1185 {
1186 match value {
1187 b"identifyingExam" => Ok(Field::IdentifyingExam),
1188 b"identifyingTest" => Ok(Field::IdentifyingTest),
1189 b"associatedAnatomy" => Ok(Field::AssociatedAnatomy),
1190 b"differentialDiagnosis" => Ok(Field::DifferentialDiagnosis),
1191 b"drug" => Ok(Field::Drug),
1192 b"epidemiology" => Ok(Field::Epidemiology),
1193 b"expectedPrognosis" => Ok(Field::ExpectedPrognosis),
1194 b"naturalProgression" => Ok(Field::NaturalProgression),
1195 b"pathophysiology" => Ok(Field::Pathophysiology),
1196 b"possibleComplication" => Ok(Field::PossibleComplication),
1197 b"possibleTreatment" => Ok(Field::PossibleTreatment),
1198 b"primaryPrevention" => Ok(Field::PrimaryPrevention),
1199 b"riskFactor" => Ok(Field::RiskFactor),
1200 b"secondaryPrevention" => Ok(Field::SecondaryPrevention),
1201 b"signOrSymptom" => Ok(Field::SignOrSymptom),
1202 b"stage" => Ok(Field::Stage),
1203 b"status" => Ok(Field::Status),
1204 b"typicalTest" => Ok(Field::TypicalTest),
1205 b"code" => Ok(Field::Code),
1206 b"funding" => Ok(Field::Funding),
1207 b"guideline" => Ok(Field::Guideline),
1208 b"legalStatus" => Ok(Field::LegalStatus),
1209 b"medicineSystem" => Ok(Field::MedicineSystem),
1210 b"recognizingAuthority" => Ok(Field::RecognizingAuthority),
1211 b"relevantSpecialty" => Ok(Field::RelevantSpecialty),
1212 b"study" => Ok(Field::Study),
1213 b"additionalType" => Ok(Field::AdditionalType),
1214 b"alternateName" => Ok(Field::AlternateName),
1215 b"description" => Ok(Field::Description),
1216 b"disambiguatingDescription" => Ok(Field::DisambiguatingDescription),
1217 b"identifier" => Ok(Field::Identifier),
1218 b"image" => Ok(Field::Image),
1219 b"mainEntityOfPage" => Ok(Field::MainEntityOfPage),
1220 b"name" => Ok(Field::Name),
1221 b"potentialAction" => Ok(Field::PotentialAction),
1222 b"sameAs" => Ok(Field::SameAs),
1223 b"subjectOf" => Ok(Field::SubjectOf),
1224 b"url" => Ok(Field::Url),
1225 b"id" | b"type" => Ok(Field::Ignore),
1226 _ => {
1227 let value = &String::from_utf8_lossy(value);
1228 Err(de::Error::unknown_field(value, FIELDS))
1229 }
1230 }
1231 }
1232 }
1233 impl<'de> Deserialize<'de> for Field {
1234 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1235 where
1236 D: Deserializer<'de>,
1237 {
1238 deserializer.deserialize_identifier(FieldVisitor)
1239 }
1240 }
1241 struct ClassVisitor;
1242 impl<'de> Visitor<'de> for ClassVisitor {
1243 type Value = MedicalSign;
1244 fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
1245 formatter.write_str("schema.org schema MedicalSign")
1246 }
1247 fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error>
1248 where
1249 A: de::MapAccess<'de>,
1250 {
1251 let mut r#identifying_exam_property = None;
1252 let mut r#identifying_test_property = None;
1253 let mut r#associated_anatomy_property = None;
1254 let mut r#differential_diagnosis_property = None;
1255 let mut r#drug_property = None;
1256 let mut r#epidemiology_property = None;
1257 let mut r#expected_prognosis_property = None;
1258 let mut r#natural_progression_property = None;
1259 let mut r#pathophysiology_property = None;
1260 let mut r#possible_complication_property = None;
1261 let mut r#possible_treatment_property = None;
1262 let mut r#primary_prevention_property = None;
1263 let mut r#risk_factor_property = None;
1264 let mut r#secondary_prevention_property = None;
1265 let mut r#sign_or_symptom_property = None;
1266 let mut r#stage_property = None;
1267 let mut r#status_property = None;
1268 let mut r#typical_test_property = None;
1269 let mut r#code_property = None;
1270 let mut r#funding_property = None;
1271 let mut r#guideline_property = None;
1272 let mut r#legal_status_property = None;
1273 let mut r#medicine_system_property = None;
1274 let mut r#recognizing_authority_property = None;
1275 let mut r#relevant_specialty_property = None;
1276 let mut r#study_property = None;
1277 let mut r#additional_type_property = None;
1278 let mut r#alternate_name_property = None;
1279 let mut r#description_property = None;
1280 let mut r#disambiguating_description_property = None;
1281 let mut r#identifier_property = None;
1282 let mut r#image_property = None;
1283 let mut r#main_entity_of_page_property = None;
1284 let mut r#name_property = None;
1285 let mut r#potential_action_property = None;
1286 let mut r#same_as_property = None;
1287 let mut r#subject_of_property = None;
1288 let mut r#url_property = None;
1289 while let Some(key) = map.next_key::<Field>()? {
1290 match key {
1291 Field::IdentifyingExam => {
1292 if r#identifying_exam_property.is_some() {
1293 return Err(<A::Error as de::Error>::duplicate_field(
1294 "identifyingExam",
1295 ));
1296 }
1297 r#identifying_exam_property = Some({
1298 struct DeserializeWith(Vec<IdentifyingExamProperty>);
1299 impl<'de> Deserialize<'de> for DeserializeWith {
1300 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1301 where
1302 D: Deserializer<'de>,
1303 {
1304 Ok(DeserializeWith(serde_with::As::<
1305 serde_with::OneOrMany<serde_with::Same>,
1306 >::deserialize(deserializer)?))
1307 }
1308 }
1309 match map.next_value::<DeserializeWith>() {
1310 Ok(deserialize_with) => deserialize_with.0,
1311 Err(err) => {
1312 return Err(err);
1313 }
1314 }
1315 });
1316 }
1317 Field::IdentifyingTest => {
1318 if r#identifying_test_property.is_some() {
1319 return Err(<A::Error as de::Error>::duplicate_field(
1320 "identifyingTest",
1321 ));
1322 }
1323 r#identifying_test_property = Some({
1324 struct DeserializeWith(Vec<IdentifyingTestProperty>);
1325 impl<'de> Deserialize<'de> for DeserializeWith {
1326 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1327 where
1328 D: Deserializer<'de>,
1329 {
1330 Ok(DeserializeWith(serde_with::As::<
1331 serde_with::OneOrMany<serde_with::Same>,
1332 >::deserialize(deserializer)?))
1333 }
1334 }
1335 match map.next_value::<DeserializeWith>() {
1336 Ok(deserialize_with) => deserialize_with.0,
1337 Err(err) => {
1338 return Err(err);
1339 }
1340 }
1341 });
1342 }
1343 Field::AssociatedAnatomy => {
1344 if r#associated_anatomy_property.is_some() {
1345 return Err(<A::Error as de::Error>::duplicate_field(
1346 "associatedAnatomy",
1347 ));
1348 }
1349 r#associated_anatomy_property = Some({
1350 struct DeserializeWith(Vec<AssociatedAnatomyProperty>);
1351 impl<'de> Deserialize<'de> for DeserializeWith {
1352 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1353 where
1354 D: Deserializer<'de>,
1355 {
1356 Ok(DeserializeWith(serde_with::As::<
1357 serde_with::OneOrMany<serde_with::Same>,
1358 >::deserialize(deserializer)?))
1359 }
1360 }
1361 match map.next_value::<DeserializeWith>() {
1362 Ok(deserialize_with) => deserialize_with.0,
1363 Err(err) => {
1364 return Err(err);
1365 }
1366 }
1367 });
1368 }
1369 Field::DifferentialDiagnosis => {
1370 if r#differential_diagnosis_property.is_some() {
1371 return Err(<A::Error as de::Error>::duplicate_field(
1372 "differentialDiagnosis",
1373 ));
1374 }
1375 r#differential_diagnosis_property = Some({
1376 struct DeserializeWith(Vec<DifferentialDiagnosisProperty>);
1377 impl<'de> Deserialize<'de> for DeserializeWith {
1378 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1379 where
1380 D: Deserializer<'de>,
1381 {
1382 Ok(DeserializeWith(serde_with::As::<
1383 serde_with::OneOrMany<serde_with::Same>,
1384 >::deserialize(deserializer)?))
1385 }
1386 }
1387 match map.next_value::<DeserializeWith>() {
1388 Ok(deserialize_with) => deserialize_with.0,
1389 Err(err) => {
1390 return Err(err);
1391 }
1392 }
1393 });
1394 }
1395 Field::Drug => {
1396 if r#drug_property.is_some() {
1397 return Err(<A::Error as de::Error>::duplicate_field("drug"));
1398 }
1399 r#drug_property = Some({
1400 struct DeserializeWith(Vec<DrugProperty>);
1401 impl<'de> Deserialize<'de> for DeserializeWith {
1402 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1403 where
1404 D: Deserializer<'de>,
1405 {
1406 Ok(DeserializeWith(serde_with::As::<
1407 serde_with::OneOrMany<serde_with::Same>,
1408 >::deserialize(deserializer)?))
1409 }
1410 }
1411 match map.next_value::<DeserializeWith>() {
1412 Ok(deserialize_with) => deserialize_with.0,
1413 Err(err) => {
1414 return Err(err);
1415 }
1416 }
1417 });
1418 }
1419 Field::Epidemiology => {
1420 if r#epidemiology_property.is_some() {
1421 return Err(<A::Error as de::Error>::duplicate_field(
1422 "epidemiology",
1423 ));
1424 }
1425 r#epidemiology_property = Some({
1426 struct DeserializeWith(Vec<EpidemiologyProperty>);
1427 impl<'de> Deserialize<'de> for DeserializeWith {
1428 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1429 where
1430 D: Deserializer<'de>,
1431 {
1432 Ok(DeserializeWith(serde_with::As::<
1433 serde_with::OneOrMany<serde_with::Same>,
1434 >::deserialize(deserializer)?))
1435 }
1436 }
1437 match map.next_value::<DeserializeWith>() {
1438 Ok(deserialize_with) => deserialize_with.0,
1439 Err(err) => {
1440 return Err(err);
1441 }
1442 }
1443 });
1444 }
1445 Field::ExpectedPrognosis => {
1446 if r#expected_prognosis_property.is_some() {
1447 return Err(<A::Error as de::Error>::duplicate_field(
1448 "expectedPrognosis",
1449 ));
1450 }
1451 r#expected_prognosis_property = Some({
1452 struct DeserializeWith(Vec<ExpectedPrognosisProperty>);
1453 impl<'de> Deserialize<'de> for DeserializeWith {
1454 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1455 where
1456 D: Deserializer<'de>,
1457 {
1458 Ok(DeserializeWith(serde_with::As::<
1459 serde_with::OneOrMany<serde_with::Same>,
1460 >::deserialize(deserializer)?))
1461 }
1462 }
1463 match map.next_value::<DeserializeWith>() {
1464 Ok(deserialize_with) => deserialize_with.0,
1465 Err(err) => {
1466 return Err(err);
1467 }
1468 }
1469 });
1470 }
1471 Field::NaturalProgression => {
1472 if r#natural_progression_property.is_some() {
1473 return Err(<A::Error as de::Error>::duplicate_field(
1474 "naturalProgression",
1475 ));
1476 }
1477 r#natural_progression_property = Some({
1478 struct DeserializeWith(Vec<NaturalProgressionProperty>);
1479 impl<'de> Deserialize<'de> for DeserializeWith {
1480 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1481 where
1482 D: Deserializer<'de>,
1483 {
1484 Ok(DeserializeWith(serde_with::As::<
1485 serde_with::OneOrMany<serde_with::Same>,
1486 >::deserialize(deserializer)?))
1487 }
1488 }
1489 match map.next_value::<DeserializeWith>() {
1490 Ok(deserialize_with) => deserialize_with.0,
1491 Err(err) => {
1492 return Err(err);
1493 }
1494 }
1495 });
1496 }
1497 Field::Pathophysiology => {
1498 if r#pathophysiology_property.is_some() {
1499 return Err(<A::Error as de::Error>::duplicate_field(
1500 "pathophysiology",
1501 ));
1502 }
1503 r#pathophysiology_property = Some({
1504 struct DeserializeWith(Vec<PathophysiologyProperty>);
1505 impl<'de> Deserialize<'de> for DeserializeWith {
1506 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1507 where
1508 D: Deserializer<'de>,
1509 {
1510 Ok(DeserializeWith(serde_with::As::<
1511 serde_with::OneOrMany<serde_with::Same>,
1512 >::deserialize(deserializer)?))
1513 }
1514 }
1515 match map.next_value::<DeserializeWith>() {
1516 Ok(deserialize_with) => deserialize_with.0,
1517 Err(err) => {
1518 return Err(err);
1519 }
1520 }
1521 });
1522 }
1523 Field::PossibleComplication => {
1524 if r#possible_complication_property.is_some() {
1525 return Err(<A::Error as de::Error>::duplicate_field(
1526 "possibleComplication",
1527 ));
1528 }
1529 r#possible_complication_property = Some({
1530 struct DeserializeWith(Vec<PossibleComplicationProperty>);
1531 impl<'de> Deserialize<'de> for DeserializeWith {
1532 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1533 where
1534 D: Deserializer<'de>,
1535 {
1536 Ok(DeserializeWith(serde_with::As::<
1537 serde_with::OneOrMany<serde_with::Same>,
1538 >::deserialize(deserializer)?))
1539 }
1540 }
1541 match map.next_value::<DeserializeWith>() {
1542 Ok(deserialize_with) => deserialize_with.0,
1543 Err(err) => {
1544 return Err(err);
1545 }
1546 }
1547 });
1548 }
1549 Field::PossibleTreatment => {
1550 if r#possible_treatment_property.is_some() {
1551 return Err(<A::Error as de::Error>::duplicate_field(
1552 "possibleTreatment",
1553 ));
1554 }
1555 r#possible_treatment_property = Some({
1556 struct DeserializeWith(Vec<PossibleTreatmentProperty>);
1557 impl<'de> Deserialize<'de> for DeserializeWith {
1558 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1559 where
1560 D: Deserializer<'de>,
1561 {
1562 Ok(DeserializeWith(serde_with::As::<
1563 serde_with::OneOrMany<serde_with::Same>,
1564 >::deserialize(deserializer)?))
1565 }
1566 }
1567 match map.next_value::<DeserializeWith>() {
1568 Ok(deserialize_with) => deserialize_with.0,
1569 Err(err) => {
1570 return Err(err);
1571 }
1572 }
1573 });
1574 }
1575 Field::PrimaryPrevention => {
1576 if r#primary_prevention_property.is_some() {
1577 return Err(<A::Error as de::Error>::duplicate_field(
1578 "primaryPrevention",
1579 ));
1580 }
1581 r#primary_prevention_property = Some({
1582 struct DeserializeWith(Vec<PrimaryPreventionProperty>);
1583 impl<'de> Deserialize<'de> for DeserializeWith {
1584 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1585 where
1586 D: Deserializer<'de>,
1587 {
1588 Ok(DeserializeWith(serde_with::As::<
1589 serde_with::OneOrMany<serde_with::Same>,
1590 >::deserialize(deserializer)?))
1591 }
1592 }
1593 match map.next_value::<DeserializeWith>() {
1594 Ok(deserialize_with) => deserialize_with.0,
1595 Err(err) => {
1596 return Err(err);
1597 }
1598 }
1599 });
1600 }
1601 Field::RiskFactor => {
1602 if r#risk_factor_property.is_some() {
1603 return Err(<A::Error as de::Error>::duplicate_field(
1604 "riskFactor",
1605 ));
1606 }
1607 r#risk_factor_property = Some({
1608 struct DeserializeWith(Vec<RiskFactorProperty>);
1609 impl<'de> Deserialize<'de> for DeserializeWith {
1610 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1611 where
1612 D: Deserializer<'de>,
1613 {
1614 Ok(DeserializeWith(serde_with::As::<
1615 serde_with::OneOrMany<serde_with::Same>,
1616 >::deserialize(deserializer)?))
1617 }
1618 }
1619 match map.next_value::<DeserializeWith>() {
1620 Ok(deserialize_with) => deserialize_with.0,
1621 Err(err) => {
1622 return Err(err);
1623 }
1624 }
1625 });
1626 }
1627 Field::SecondaryPrevention => {
1628 if r#secondary_prevention_property.is_some() {
1629 return Err(<A::Error as de::Error>::duplicate_field(
1630 "secondaryPrevention",
1631 ));
1632 }
1633 r#secondary_prevention_property = Some({
1634 struct DeserializeWith(Vec<SecondaryPreventionProperty>);
1635 impl<'de> Deserialize<'de> for DeserializeWith {
1636 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1637 where
1638 D: Deserializer<'de>,
1639 {
1640 Ok(DeserializeWith(serde_with::As::<
1641 serde_with::OneOrMany<serde_with::Same>,
1642 >::deserialize(deserializer)?))
1643 }
1644 }
1645 match map.next_value::<DeserializeWith>() {
1646 Ok(deserialize_with) => deserialize_with.0,
1647 Err(err) => {
1648 return Err(err);
1649 }
1650 }
1651 });
1652 }
1653 Field::SignOrSymptom => {
1654 if r#sign_or_symptom_property.is_some() {
1655 return Err(<A::Error as de::Error>::duplicate_field(
1656 "signOrSymptom",
1657 ));
1658 }
1659 r#sign_or_symptom_property = Some({
1660 struct DeserializeWith(Vec<SignOrSymptomProperty>);
1661 impl<'de> Deserialize<'de> for DeserializeWith {
1662 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1663 where
1664 D: Deserializer<'de>,
1665 {
1666 Ok(DeserializeWith(serde_with::As::<
1667 serde_with::OneOrMany<serde_with::Same>,
1668 >::deserialize(deserializer)?))
1669 }
1670 }
1671 match map.next_value::<DeserializeWith>() {
1672 Ok(deserialize_with) => deserialize_with.0,
1673 Err(err) => {
1674 return Err(err);
1675 }
1676 }
1677 });
1678 }
1679 Field::Stage => {
1680 if r#stage_property.is_some() {
1681 return Err(<A::Error as de::Error>::duplicate_field("stage"));
1682 }
1683 r#stage_property = Some({
1684 struct DeserializeWith(Vec<StageProperty>);
1685 impl<'de> Deserialize<'de> for DeserializeWith {
1686 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1687 where
1688 D: Deserializer<'de>,
1689 {
1690 Ok(DeserializeWith(serde_with::As::<
1691 serde_with::OneOrMany<serde_with::Same>,
1692 >::deserialize(deserializer)?))
1693 }
1694 }
1695 match map.next_value::<DeserializeWith>() {
1696 Ok(deserialize_with) => deserialize_with.0,
1697 Err(err) => {
1698 return Err(err);
1699 }
1700 }
1701 });
1702 }
1703 Field::Status => {
1704 if r#status_property.is_some() {
1705 return Err(<A::Error as de::Error>::duplicate_field("status"));
1706 }
1707 r#status_property = Some({
1708 struct DeserializeWith(Vec<StatusProperty>);
1709 impl<'de> Deserialize<'de> for DeserializeWith {
1710 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1711 where
1712 D: Deserializer<'de>,
1713 {
1714 Ok(DeserializeWith(serde_with::As::<
1715 serde_with::OneOrMany<serde_with::Same>,
1716 >::deserialize(deserializer)?))
1717 }
1718 }
1719 match map.next_value::<DeserializeWith>() {
1720 Ok(deserialize_with) => deserialize_with.0,
1721 Err(err) => {
1722 return Err(err);
1723 }
1724 }
1725 });
1726 }
1727 Field::TypicalTest => {
1728 if r#typical_test_property.is_some() {
1729 return Err(<A::Error as de::Error>::duplicate_field(
1730 "typicalTest",
1731 ));
1732 }
1733 r#typical_test_property = Some({
1734 struct DeserializeWith(Vec<TypicalTestProperty>);
1735 impl<'de> Deserialize<'de> for DeserializeWith {
1736 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1737 where
1738 D: Deserializer<'de>,
1739 {
1740 Ok(DeserializeWith(serde_with::As::<
1741 serde_with::OneOrMany<serde_with::Same>,
1742 >::deserialize(deserializer)?))
1743 }
1744 }
1745 match map.next_value::<DeserializeWith>() {
1746 Ok(deserialize_with) => deserialize_with.0,
1747 Err(err) => {
1748 return Err(err);
1749 }
1750 }
1751 });
1752 }
1753 Field::Code => {
1754 if r#code_property.is_some() {
1755 return Err(<A::Error as de::Error>::duplicate_field("code"));
1756 }
1757 r#code_property = Some({
1758 struct DeserializeWith(Vec<CodeProperty>);
1759 impl<'de> Deserialize<'de> for DeserializeWith {
1760 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1761 where
1762 D: Deserializer<'de>,
1763 {
1764 Ok(DeserializeWith(serde_with::As::<
1765 serde_with::OneOrMany<serde_with::Same>,
1766 >::deserialize(deserializer)?))
1767 }
1768 }
1769 match map.next_value::<DeserializeWith>() {
1770 Ok(deserialize_with) => deserialize_with.0,
1771 Err(err) => {
1772 return Err(err);
1773 }
1774 }
1775 });
1776 }
1777 Field::Funding => {
1778 if r#funding_property.is_some() {
1779 return Err(<A::Error as de::Error>::duplicate_field(
1780 "funding",
1781 ));
1782 }
1783 r#funding_property = Some({
1784 struct DeserializeWith(Vec<FundingProperty>);
1785 impl<'de> Deserialize<'de> for DeserializeWith {
1786 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1787 where
1788 D: Deserializer<'de>,
1789 {
1790 Ok(DeserializeWith(serde_with::As::<
1791 serde_with::OneOrMany<serde_with::Same>,
1792 >::deserialize(deserializer)?))
1793 }
1794 }
1795 match map.next_value::<DeserializeWith>() {
1796 Ok(deserialize_with) => deserialize_with.0,
1797 Err(err) => {
1798 return Err(err);
1799 }
1800 }
1801 });
1802 }
1803 Field::Guideline => {
1804 if r#guideline_property.is_some() {
1805 return Err(<A::Error as de::Error>::duplicate_field(
1806 "guideline",
1807 ));
1808 }
1809 r#guideline_property = Some({
1810 struct DeserializeWith(Vec<GuidelineProperty>);
1811 impl<'de> Deserialize<'de> for DeserializeWith {
1812 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1813 where
1814 D: Deserializer<'de>,
1815 {
1816 Ok(DeserializeWith(serde_with::As::<
1817 serde_with::OneOrMany<serde_with::Same>,
1818 >::deserialize(deserializer)?))
1819 }
1820 }
1821 match map.next_value::<DeserializeWith>() {
1822 Ok(deserialize_with) => deserialize_with.0,
1823 Err(err) => {
1824 return Err(err);
1825 }
1826 }
1827 });
1828 }
1829 Field::LegalStatus => {
1830 if r#legal_status_property.is_some() {
1831 return Err(<A::Error as de::Error>::duplicate_field(
1832 "legalStatus",
1833 ));
1834 }
1835 r#legal_status_property = Some({
1836 struct DeserializeWith(Vec<LegalStatusProperty>);
1837 impl<'de> Deserialize<'de> for DeserializeWith {
1838 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1839 where
1840 D: Deserializer<'de>,
1841 {
1842 Ok(DeserializeWith(serde_with::As::<
1843 serde_with::OneOrMany<serde_with::Same>,
1844 >::deserialize(deserializer)?))
1845 }
1846 }
1847 match map.next_value::<DeserializeWith>() {
1848 Ok(deserialize_with) => deserialize_with.0,
1849 Err(err) => {
1850 return Err(err);
1851 }
1852 }
1853 });
1854 }
1855 Field::MedicineSystem => {
1856 if r#medicine_system_property.is_some() {
1857 return Err(<A::Error as de::Error>::duplicate_field(
1858 "medicineSystem",
1859 ));
1860 }
1861 r#medicine_system_property = Some({
1862 struct DeserializeWith(Vec<MedicineSystemProperty>);
1863 impl<'de> Deserialize<'de> for DeserializeWith {
1864 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1865 where
1866 D: Deserializer<'de>,
1867 {
1868 Ok(DeserializeWith(serde_with::As::<
1869 serde_with::OneOrMany<serde_with::Same>,
1870 >::deserialize(deserializer)?))
1871 }
1872 }
1873 match map.next_value::<DeserializeWith>() {
1874 Ok(deserialize_with) => deserialize_with.0,
1875 Err(err) => {
1876 return Err(err);
1877 }
1878 }
1879 });
1880 }
1881 Field::RecognizingAuthority => {
1882 if r#recognizing_authority_property.is_some() {
1883 return Err(<A::Error as de::Error>::duplicate_field(
1884 "recognizingAuthority",
1885 ));
1886 }
1887 r#recognizing_authority_property = Some({
1888 struct DeserializeWith(Vec<RecognizingAuthorityProperty>);
1889 impl<'de> Deserialize<'de> for DeserializeWith {
1890 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1891 where
1892 D: Deserializer<'de>,
1893 {
1894 Ok(DeserializeWith(serde_with::As::<
1895 serde_with::OneOrMany<serde_with::Same>,
1896 >::deserialize(deserializer)?))
1897 }
1898 }
1899 match map.next_value::<DeserializeWith>() {
1900 Ok(deserialize_with) => deserialize_with.0,
1901 Err(err) => {
1902 return Err(err);
1903 }
1904 }
1905 });
1906 }
1907 Field::RelevantSpecialty => {
1908 if r#relevant_specialty_property.is_some() {
1909 return Err(<A::Error as de::Error>::duplicate_field(
1910 "relevantSpecialty",
1911 ));
1912 }
1913 r#relevant_specialty_property = Some({
1914 struct DeserializeWith(Vec<RelevantSpecialtyProperty>);
1915 impl<'de> Deserialize<'de> for DeserializeWith {
1916 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1917 where
1918 D: Deserializer<'de>,
1919 {
1920 Ok(DeserializeWith(serde_with::As::<
1921 serde_with::OneOrMany<serde_with::Same>,
1922 >::deserialize(deserializer)?))
1923 }
1924 }
1925 match map.next_value::<DeserializeWith>() {
1926 Ok(deserialize_with) => deserialize_with.0,
1927 Err(err) => {
1928 return Err(err);
1929 }
1930 }
1931 });
1932 }
1933 Field::Study => {
1934 if r#study_property.is_some() {
1935 return Err(<A::Error as de::Error>::duplicate_field("study"));
1936 }
1937 r#study_property = Some({
1938 struct DeserializeWith(Vec<StudyProperty>);
1939 impl<'de> Deserialize<'de> for DeserializeWith {
1940 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1941 where
1942 D: Deserializer<'de>,
1943 {
1944 Ok(DeserializeWith(serde_with::As::<
1945 serde_with::OneOrMany<serde_with::Same>,
1946 >::deserialize(deserializer)?))
1947 }
1948 }
1949 match map.next_value::<DeserializeWith>() {
1950 Ok(deserialize_with) => deserialize_with.0,
1951 Err(err) => {
1952 return Err(err);
1953 }
1954 }
1955 });
1956 }
1957 Field::AdditionalType => {
1958 if r#additional_type_property.is_some() {
1959 return Err(<A::Error as de::Error>::duplicate_field(
1960 "additionalType",
1961 ));
1962 }
1963 r#additional_type_property = Some({
1964 struct DeserializeWith(Vec<AdditionalTypeProperty>);
1965 impl<'de> Deserialize<'de> for DeserializeWith {
1966 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1967 where
1968 D: Deserializer<'de>,
1969 {
1970 Ok(DeserializeWith(serde_with::As::<
1971 serde_with::OneOrMany<serde_with::Same>,
1972 >::deserialize(deserializer)?))
1973 }
1974 }
1975 match map.next_value::<DeserializeWith>() {
1976 Ok(deserialize_with) => deserialize_with.0,
1977 Err(err) => {
1978 return Err(err);
1979 }
1980 }
1981 });
1982 }
1983 Field::AlternateName => {
1984 if r#alternate_name_property.is_some() {
1985 return Err(<A::Error as de::Error>::duplicate_field(
1986 "alternateName",
1987 ));
1988 }
1989 r#alternate_name_property = Some({
1990 struct DeserializeWith(Vec<AlternateNameProperty>);
1991 impl<'de> Deserialize<'de> for DeserializeWith {
1992 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1993 where
1994 D: Deserializer<'de>,
1995 {
1996 Ok(DeserializeWith(serde_with::As::<
1997 serde_with::OneOrMany<serde_with::Same>,
1998 >::deserialize(deserializer)?))
1999 }
2000 }
2001 match map.next_value::<DeserializeWith>() {
2002 Ok(deserialize_with) => deserialize_with.0,
2003 Err(err) => {
2004 return Err(err);
2005 }
2006 }
2007 });
2008 }
2009 Field::Description => {
2010 if r#description_property.is_some() {
2011 return Err(<A::Error as de::Error>::duplicate_field(
2012 "description",
2013 ));
2014 }
2015 r#description_property = Some({
2016 struct DeserializeWith(Vec<DescriptionProperty>);
2017 impl<'de> Deserialize<'de> for DeserializeWith {
2018 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2019 where
2020 D: Deserializer<'de>,
2021 {
2022 Ok(DeserializeWith(serde_with::As::<
2023 serde_with::OneOrMany<serde_with::Same>,
2024 >::deserialize(deserializer)?))
2025 }
2026 }
2027 match map.next_value::<DeserializeWith>() {
2028 Ok(deserialize_with) => deserialize_with.0,
2029 Err(err) => {
2030 return Err(err);
2031 }
2032 }
2033 });
2034 }
2035 Field::DisambiguatingDescription => {
2036 if r#disambiguating_description_property.is_some() {
2037 return Err(<A::Error as de::Error>::duplicate_field(
2038 "disambiguatingDescription",
2039 ));
2040 }
2041 r#disambiguating_description_property = Some({
2042 struct DeserializeWith(Vec<DisambiguatingDescriptionProperty>);
2043 impl<'de> Deserialize<'de> for DeserializeWith {
2044 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2045 where
2046 D: Deserializer<'de>,
2047 {
2048 Ok(DeserializeWith(serde_with::As::<
2049 serde_with::OneOrMany<serde_with::Same>,
2050 >::deserialize(deserializer)?))
2051 }
2052 }
2053 match map.next_value::<DeserializeWith>() {
2054 Ok(deserialize_with) => deserialize_with.0,
2055 Err(err) => {
2056 return Err(err);
2057 }
2058 }
2059 });
2060 }
2061 Field::Identifier => {
2062 if r#identifier_property.is_some() {
2063 return Err(<A::Error as de::Error>::duplicate_field(
2064 "identifier",
2065 ));
2066 }
2067 r#identifier_property = Some({
2068 struct DeserializeWith(Vec<IdentifierProperty>);
2069 impl<'de> Deserialize<'de> for DeserializeWith {
2070 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2071 where
2072 D: Deserializer<'de>,
2073 {
2074 Ok(DeserializeWith(serde_with::As::<
2075 serde_with::OneOrMany<serde_with::Same>,
2076 >::deserialize(deserializer)?))
2077 }
2078 }
2079 match map.next_value::<DeserializeWith>() {
2080 Ok(deserialize_with) => deserialize_with.0,
2081 Err(err) => {
2082 return Err(err);
2083 }
2084 }
2085 });
2086 }
2087 Field::Image => {
2088 if r#image_property.is_some() {
2089 return Err(<A::Error as de::Error>::duplicate_field("image"));
2090 }
2091 r#image_property = Some({
2092 struct DeserializeWith(Vec<ImageProperty>);
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::MainEntityOfPage => {
2112 if r#main_entity_of_page_property.is_some() {
2113 return Err(<A::Error as de::Error>::duplicate_field(
2114 "mainEntityOfPage",
2115 ));
2116 }
2117 r#main_entity_of_page_property = Some({
2118 struct DeserializeWith(Vec<MainEntityOfPageProperty>);
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::Name => {
2138 if r#name_property.is_some() {
2139 return Err(<A::Error as de::Error>::duplicate_field("name"));
2140 }
2141 r#name_property = Some({
2142 struct DeserializeWith(Vec<NameProperty>);
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::PotentialAction => {
2162 if r#potential_action_property.is_some() {
2163 return Err(<A::Error as de::Error>::duplicate_field(
2164 "potentialAction",
2165 ));
2166 }
2167 r#potential_action_property = Some({
2168 struct DeserializeWith(Vec<PotentialActionProperty>);
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::SameAs => {
2188 if r#same_as_property.is_some() {
2189 return Err(<A::Error as de::Error>::duplicate_field("sameAs"));
2190 }
2191 r#same_as_property = Some({
2192 struct DeserializeWith(Vec<SameAsProperty>);
2193 impl<'de> Deserialize<'de> for DeserializeWith {
2194 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2195 where
2196 D: Deserializer<'de>,
2197 {
2198 Ok(DeserializeWith(serde_with::As::<
2199 serde_with::OneOrMany<serde_with::Same>,
2200 >::deserialize(deserializer)?))
2201 }
2202 }
2203 match map.next_value::<DeserializeWith>() {
2204 Ok(deserialize_with) => deserialize_with.0,
2205 Err(err) => {
2206 return Err(err);
2207 }
2208 }
2209 });
2210 }
2211 Field::SubjectOf => {
2212 if r#subject_of_property.is_some() {
2213 return Err(<A::Error as de::Error>::duplicate_field(
2214 "subjectOf",
2215 ));
2216 }
2217 r#subject_of_property = Some({
2218 struct DeserializeWith(Vec<SubjectOfProperty>);
2219 impl<'de> Deserialize<'de> for DeserializeWith {
2220 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2221 where
2222 D: Deserializer<'de>,
2223 {
2224 Ok(DeserializeWith(serde_with::As::<
2225 serde_with::OneOrMany<serde_with::Same>,
2226 >::deserialize(deserializer)?))
2227 }
2228 }
2229 match map.next_value::<DeserializeWith>() {
2230 Ok(deserialize_with) => deserialize_with.0,
2231 Err(err) => {
2232 return Err(err);
2233 }
2234 }
2235 });
2236 }
2237 Field::Url => {
2238 if r#url_property.is_some() {
2239 return Err(<A::Error as de::Error>::duplicate_field("url"));
2240 }
2241 r#url_property = Some({
2242 struct DeserializeWith(Vec<UrlProperty>);
2243 impl<'de> Deserialize<'de> for DeserializeWith {
2244 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2245 where
2246 D: Deserializer<'de>,
2247 {
2248 Ok(DeserializeWith(serde_with::As::<
2249 serde_with::OneOrMany<serde_with::Same>,
2250 >::deserialize(deserializer)?))
2251 }
2252 }
2253 match map.next_value::<DeserializeWith>() {
2254 Ok(deserialize_with) => deserialize_with.0,
2255 Err(err) => {
2256 return Err(err);
2257 }
2258 }
2259 });
2260 }
2261 Field::Ignore => {
2262 let _ = map.next_value::<de::IgnoredAny>()?;
2263 }
2264 }
2265 }
2266 Ok(MedicalSign {
2267 r#identifying_exam: r#identifying_exam_property.unwrap_or_default(),
2268 r#identifying_test: r#identifying_test_property.unwrap_or_default(),
2269 r#associated_anatomy: r#associated_anatomy_property.unwrap_or_default(),
2270 r#differential_diagnosis: r#differential_diagnosis_property
2271 .unwrap_or_default(),
2272 r#drug: r#drug_property.unwrap_or_default(),
2273 r#epidemiology: r#epidemiology_property.unwrap_or_default(),
2274 r#expected_prognosis: r#expected_prognosis_property.unwrap_or_default(),
2275 r#natural_progression: r#natural_progression_property.unwrap_or_default(),
2276 r#pathophysiology: r#pathophysiology_property.unwrap_or_default(),
2277 r#possible_complication: r#possible_complication_property
2278 .unwrap_or_default(),
2279 r#possible_treatment: r#possible_treatment_property.unwrap_or_default(),
2280 r#primary_prevention: r#primary_prevention_property.unwrap_or_default(),
2281 r#risk_factor: r#risk_factor_property.unwrap_or_default(),
2282 r#secondary_prevention: r#secondary_prevention_property.unwrap_or_default(),
2283 r#sign_or_symptom: r#sign_or_symptom_property.unwrap_or_default(),
2284 r#stage: r#stage_property.unwrap_or_default(),
2285 r#status: r#status_property.unwrap_or_default(),
2286 r#typical_test: r#typical_test_property.unwrap_or_default(),
2287 r#code: r#code_property.unwrap_or_default(),
2288 r#funding: r#funding_property.unwrap_or_default(),
2289 r#guideline: r#guideline_property.unwrap_or_default(),
2290 r#legal_status: r#legal_status_property.unwrap_or_default(),
2291 r#medicine_system: r#medicine_system_property.unwrap_or_default(),
2292 r#recognizing_authority: r#recognizing_authority_property
2293 .unwrap_or_default(),
2294 r#relevant_specialty: r#relevant_specialty_property.unwrap_or_default(),
2295 r#study: r#study_property.unwrap_or_default(),
2296 r#additional_type: r#additional_type_property.unwrap_or_default(),
2297 r#alternate_name: r#alternate_name_property.unwrap_or_default(),
2298 r#description: r#description_property.unwrap_or_default(),
2299 r#disambiguating_description: r#disambiguating_description_property
2300 .unwrap_or_default(),
2301 r#identifier: r#identifier_property.unwrap_or_default(),
2302 r#image: r#image_property.unwrap_or_default(),
2303 r#main_entity_of_page: r#main_entity_of_page_property.unwrap_or_default(),
2304 r#name: r#name_property.unwrap_or_default(),
2305 r#potential_action: r#potential_action_property.unwrap_or_default(),
2306 r#same_as: r#same_as_property.unwrap_or_default(),
2307 r#subject_of: r#subject_of_property.unwrap_or_default(),
2308 r#url: r#url_property.unwrap_or_default(),
2309 })
2310 }
2311 }
2312 const FIELDS: &[&str] = &[
2313 "identifyingExam",
2314 "identifyingTest",
2315 "associatedAnatomy",
2316 "differentialDiagnosis",
2317 "drug",
2318 "epidemiology",
2319 "expectedPrognosis",
2320 "naturalProgression",
2321 "pathophysiology",
2322 "possibleComplication",
2323 "possibleTreatment",
2324 "primaryPrevention",
2325 "riskFactor",
2326 "secondaryPrevention",
2327 "signOrSymptom",
2328 "stage",
2329 "status",
2330 "typicalTest",
2331 "code",
2332 "funding",
2333 "guideline",
2334 "legalStatus",
2335 "medicineSystem",
2336 "recognizingAuthority",
2337 "relevantSpecialty",
2338 "study",
2339 "additionalType",
2340 "alternateName",
2341 "description",
2342 "disambiguatingDescription",
2343 "identifier",
2344 "image",
2345 "mainEntityOfPage",
2346 "name",
2347 "potentialAction",
2348 "sameAs",
2349 "subjectOf",
2350 "url",
2351 ];
2352 deserializer.deserialize_struct("MedicalSign", FIELDS, ClassVisitor)
2353 }
2354 }
2355}