use super::*;
#[cfg_attr(feature = "derive-debug", derive(Debug))]
#[cfg_attr(feature = "derive-clone", derive(Clone))]
pub struct MedicalSignOrSymptom {
pub r#additional_type: Vec<AdditionalTypeProperty>,
pub r#alternate_name: Vec<AlternateNameProperty>,
pub r#associated_anatomy: Vec<AssociatedAnatomyProperty>,
pub r#code: Vec<CodeProperty>,
pub r#description: Vec<DescriptionProperty>,
pub r#differential_diagnosis: Vec<DifferentialDiagnosisProperty>,
pub r#disambiguating_description: Vec<DisambiguatingDescriptionProperty>,
pub r#drug: Vec<DrugProperty>,
pub r#epidemiology: Vec<EpidemiologyProperty>,
pub r#expected_prognosis: Vec<ExpectedPrognosisProperty>,
pub r#funding: Vec<FundingProperty>,
pub r#guideline: Vec<GuidelineProperty>,
pub r#identifier: Vec<IdentifierProperty>,
pub r#image: Vec<ImageProperty>,
pub r#legal_status: Vec<LegalStatusProperty>,
pub r#main_entity_of_page: Vec<MainEntityOfPageProperty>,
pub r#medicine_system: Vec<MedicineSystemProperty>,
pub r#name: Vec<NameProperty>,
pub r#natural_progression: Vec<NaturalProgressionProperty>,
pub r#pathophysiology: Vec<PathophysiologyProperty>,
pub r#possible_complication: Vec<PossibleComplicationProperty>,
pub r#possible_treatment: Vec<PossibleTreatmentProperty>,
pub r#potential_action: Vec<PotentialActionProperty>,
pub r#primary_prevention: Vec<PrimaryPreventionProperty>,
pub r#recognizing_authority: Vec<RecognizingAuthorityProperty>,
pub r#relevant_specialty: Vec<RelevantSpecialtyProperty>,
pub r#risk_factor: Vec<RiskFactorProperty>,
pub r#same_as: Vec<SameAsProperty>,
pub r#secondary_prevention: Vec<SecondaryPreventionProperty>,
pub r#sign_or_symptom: Vec<SignOrSymptomProperty>,
pub r#stage: Vec<StageProperty>,
pub r#status: Vec<StatusProperty>,
pub r#study: Vec<StudyProperty>,
pub r#subject_of: Vec<SubjectOfProperty>,
pub r#typical_test: Vec<TypicalTestProperty>,
pub r#url: Vec<UrlProperty>,
}
#[cfg(feature = "serde")]
mod serde {
use std::{fmt, fmt::Formatter};
use ::serde::{
de, de::Visitor, ser::SerializeStruct, Deserialize, Deserializer, Serialize, Serializer,
};
use super::*;
impl Serialize for MedicalSignOrSymptom {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
let len: usize = [
!Vec::is_empty(&self.r#additional_type) as usize,
!Vec::is_empty(&self.r#alternate_name) as usize,
!Vec::is_empty(&self.r#associated_anatomy) as usize,
!Vec::is_empty(&self.r#code) as usize,
!Vec::is_empty(&self.r#description) as usize,
!Vec::is_empty(&self.r#differential_diagnosis) as usize,
!Vec::is_empty(&self.r#disambiguating_description) as usize,
!Vec::is_empty(&self.r#drug) as usize,
!Vec::is_empty(&self.r#epidemiology) as usize,
!Vec::is_empty(&self.r#expected_prognosis) as usize,
!Vec::is_empty(&self.r#funding) as usize,
!Vec::is_empty(&self.r#guideline) as usize,
!Vec::is_empty(&self.r#identifier) as usize,
!Vec::is_empty(&self.r#image) as usize,
!Vec::is_empty(&self.r#legal_status) as usize,
!Vec::is_empty(&self.r#main_entity_of_page) as usize,
!Vec::is_empty(&self.r#medicine_system) as usize,
!Vec::is_empty(&self.r#name) as usize,
!Vec::is_empty(&self.r#natural_progression) as usize,
!Vec::is_empty(&self.r#pathophysiology) as usize,
!Vec::is_empty(&self.r#possible_complication) as usize,
!Vec::is_empty(&self.r#possible_treatment) as usize,
!Vec::is_empty(&self.r#potential_action) as usize,
!Vec::is_empty(&self.r#primary_prevention) as usize,
!Vec::is_empty(&self.r#recognizing_authority) as usize,
!Vec::is_empty(&self.r#relevant_specialty) as usize,
!Vec::is_empty(&self.r#risk_factor) as usize,
!Vec::is_empty(&self.r#same_as) as usize,
!Vec::is_empty(&self.r#secondary_prevention) as usize,
!Vec::is_empty(&self.r#sign_or_symptom) as usize,
!Vec::is_empty(&self.r#stage) as usize,
!Vec::is_empty(&self.r#status) as usize,
!Vec::is_empty(&self.r#study) as usize,
!Vec::is_empty(&self.r#subject_of) as usize,
!Vec::is_empty(&self.r#typical_test) as usize,
!Vec::is_empty(&self.r#url) as usize,
]
.iter()
.sum();
let mut serialize_struct =
Serializer::serialize_struct(serializer, "MedicalSignOrSymptom", len)?;
if !Vec::is_empty(&self.r#additional_type) {
serialize_struct.serialize_field("additionalType", {
struct SerializeWith<'a>(&'a Vec<AdditionalTypeProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#additional_type)
})?;
} else {
serialize_struct.skip_field("additionalType")?;
}
if !Vec::is_empty(&self.r#alternate_name) {
serialize_struct.serialize_field("alternateName", {
struct SerializeWith<'a>(&'a Vec<AlternateNameProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#alternate_name)
})?;
} else {
serialize_struct.skip_field("alternateName")?;
}
if !Vec::is_empty(&self.r#associated_anatomy) {
serialize_struct.serialize_field("associatedAnatomy", {
struct SerializeWith<'a>(&'a Vec<AssociatedAnatomyProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#associated_anatomy)
})?;
} else {
serialize_struct.skip_field("associatedAnatomy")?;
}
if !Vec::is_empty(&self.r#code) {
serialize_struct.serialize_field("code", {
struct SerializeWith<'a>(&'a Vec<CodeProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#code)
})?;
} else {
serialize_struct.skip_field("code")?;
}
if !Vec::is_empty(&self.r#description) {
serialize_struct.serialize_field("description", {
struct SerializeWith<'a>(&'a Vec<DescriptionProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#description)
})?;
} else {
serialize_struct.skip_field("description")?;
}
if !Vec::is_empty(&self.r#differential_diagnosis) {
serialize_struct.serialize_field("differentialDiagnosis", {
struct SerializeWith<'a>(&'a Vec<DifferentialDiagnosisProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#differential_diagnosis)
})?;
} else {
serialize_struct.skip_field("differentialDiagnosis")?;
}
if !Vec::is_empty(&self.r#disambiguating_description) {
serialize_struct.serialize_field("disambiguatingDescription", {
struct SerializeWith<'a>(&'a Vec<DisambiguatingDescriptionProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#disambiguating_description)
})?;
} else {
serialize_struct.skip_field("disambiguatingDescription")?;
}
if !Vec::is_empty(&self.r#drug) {
serialize_struct.serialize_field("drug", {
struct SerializeWith<'a>(&'a Vec<DrugProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#drug)
})?;
} else {
serialize_struct.skip_field("drug")?;
}
if !Vec::is_empty(&self.r#epidemiology) {
serialize_struct.serialize_field("epidemiology", {
struct SerializeWith<'a>(&'a Vec<EpidemiologyProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#epidemiology)
})?;
} else {
serialize_struct.skip_field("epidemiology")?;
}
if !Vec::is_empty(&self.r#expected_prognosis) {
serialize_struct.serialize_field("expectedPrognosis", {
struct SerializeWith<'a>(&'a Vec<ExpectedPrognosisProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#expected_prognosis)
})?;
} else {
serialize_struct.skip_field("expectedPrognosis")?;
}
if !Vec::is_empty(&self.r#funding) {
serialize_struct.serialize_field("funding", {
struct SerializeWith<'a>(&'a Vec<FundingProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#funding)
})?;
} else {
serialize_struct.skip_field("funding")?;
}
if !Vec::is_empty(&self.r#guideline) {
serialize_struct.serialize_field("guideline", {
struct SerializeWith<'a>(&'a Vec<GuidelineProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#guideline)
})?;
} else {
serialize_struct.skip_field("guideline")?;
}
if !Vec::is_empty(&self.r#identifier) {
serialize_struct.serialize_field("identifier", {
struct SerializeWith<'a>(&'a Vec<IdentifierProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#identifier)
})?;
} else {
serialize_struct.skip_field("identifier")?;
}
if !Vec::is_empty(&self.r#image) {
serialize_struct.serialize_field("image", {
struct SerializeWith<'a>(&'a Vec<ImageProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#image)
})?;
} else {
serialize_struct.skip_field("image")?;
}
if !Vec::is_empty(&self.r#legal_status) {
serialize_struct.serialize_field("legalStatus", {
struct SerializeWith<'a>(&'a Vec<LegalStatusProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#legal_status)
})?;
} else {
serialize_struct.skip_field("legalStatus")?;
}
if !Vec::is_empty(&self.r#main_entity_of_page) {
serialize_struct.serialize_field("mainEntityOfPage", {
struct SerializeWith<'a>(&'a Vec<MainEntityOfPageProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#main_entity_of_page)
})?;
} else {
serialize_struct.skip_field("mainEntityOfPage")?;
}
if !Vec::is_empty(&self.r#medicine_system) {
serialize_struct.serialize_field("medicineSystem", {
struct SerializeWith<'a>(&'a Vec<MedicineSystemProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#medicine_system)
})?;
} else {
serialize_struct.skip_field("medicineSystem")?;
}
if !Vec::is_empty(&self.r#name) {
serialize_struct.serialize_field("name", {
struct SerializeWith<'a>(&'a Vec<NameProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#name)
})?;
} else {
serialize_struct.skip_field("name")?;
}
if !Vec::is_empty(&self.r#natural_progression) {
serialize_struct.serialize_field("naturalProgression", {
struct SerializeWith<'a>(&'a Vec<NaturalProgressionProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#natural_progression)
})?;
} else {
serialize_struct.skip_field("naturalProgression")?;
}
if !Vec::is_empty(&self.r#pathophysiology) {
serialize_struct.serialize_field("pathophysiology", {
struct SerializeWith<'a>(&'a Vec<PathophysiologyProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#pathophysiology)
})?;
} else {
serialize_struct.skip_field("pathophysiology")?;
}
if !Vec::is_empty(&self.r#possible_complication) {
serialize_struct.serialize_field("possibleComplication", {
struct SerializeWith<'a>(&'a Vec<PossibleComplicationProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#possible_complication)
})?;
} else {
serialize_struct.skip_field("possibleComplication")?;
}
if !Vec::is_empty(&self.r#possible_treatment) {
serialize_struct.serialize_field("possibleTreatment", {
struct SerializeWith<'a>(&'a Vec<PossibleTreatmentProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#possible_treatment)
})?;
} else {
serialize_struct.skip_field("possibleTreatment")?;
}
if !Vec::is_empty(&self.r#potential_action) {
serialize_struct.serialize_field("potentialAction", {
struct SerializeWith<'a>(&'a Vec<PotentialActionProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#potential_action)
})?;
} else {
serialize_struct.skip_field("potentialAction")?;
}
if !Vec::is_empty(&self.r#primary_prevention) {
serialize_struct.serialize_field("primaryPrevention", {
struct SerializeWith<'a>(&'a Vec<PrimaryPreventionProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#primary_prevention)
})?;
} else {
serialize_struct.skip_field("primaryPrevention")?;
}
if !Vec::is_empty(&self.r#recognizing_authority) {
serialize_struct.serialize_field("recognizingAuthority", {
struct SerializeWith<'a>(&'a Vec<RecognizingAuthorityProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#recognizing_authority)
})?;
} else {
serialize_struct.skip_field("recognizingAuthority")?;
}
if !Vec::is_empty(&self.r#relevant_specialty) {
serialize_struct.serialize_field("relevantSpecialty", {
struct SerializeWith<'a>(&'a Vec<RelevantSpecialtyProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#relevant_specialty)
})?;
} else {
serialize_struct.skip_field("relevantSpecialty")?;
}
if !Vec::is_empty(&self.r#risk_factor) {
serialize_struct.serialize_field("riskFactor", {
struct SerializeWith<'a>(&'a Vec<RiskFactorProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#risk_factor)
})?;
} else {
serialize_struct.skip_field("riskFactor")?;
}
if !Vec::is_empty(&self.r#same_as) {
serialize_struct.serialize_field("sameAs", {
struct SerializeWith<'a>(&'a Vec<SameAsProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#same_as)
})?;
} else {
serialize_struct.skip_field("sameAs")?;
}
if !Vec::is_empty(&self.r#secondary_prevention) {
serialize_struct.serialize_field("secondaryPrevention", {
struct SerializeWith<'a>(&'a Vec<SecondaryPreventionProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#secondary_prevention)
})?;
} else {
serialize_struct.skip_field("secondaryPrevention")?;
}
if !Vec::is_empty(&self.r#sign_or_symptom) {
serialize_struct.serialize_field("signOrSymptom", {
struct SerializeWith<'a>(&'a Vec<SignOrSymptomProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#sign_or_symptom)
})?;
} else {
serialize_struct.skip_field("signOrSymptom")?;
}
if !Vec::is_empty(&self.r#stage) {
serialize_struct.serialize_field("stage", {
struct SerializeWith<'a>(&'a Vec<StageProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#stage)
})?;
} else {
serialize_struct.skip_field("stage")?;
}
if !Vec::is_empty(&self.r#status) {
serialize_struct.serialize_field("status", {
struct SerializeWith<'a>(&'a Vec<StatusProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#status)
})?;
} else {
serialize_struct.skip_field("status")?;
}
if !Vec::is_empty(&self.r#study) {
serialize_struct.serialize_field("study", {
struct SerializeWith<'a>(&'a Vec<StudyProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#study)
})?;
} else {
serialize_struct.skip_field("study")?;
}
if !Vec::is_empty(&self.r#subject_of) {
serialize_struct.serialize_field("subjectOf", {
struct SerializeWith<'a>(&'a Vec<SubjectOfProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#subject_of)
})?;
} else {
serialize_struct.skip_field("subjectOf")?;
}
if !Vec::is_empty(&self.r#typical_test) {
serialize_struct.serialize_field("typicalTest", {
struct SerializeWith<'a>(&'a Vec<TypicalTestProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#typical_test)
})?;
} else {
serialize_struct.skip_field("typicalTest")?;
}
if !Vec::is_empty(&self.r#url) {
serialize_struct.serialize_field("url", {
struct SerializeWith<'a>(&'a Vec<UrlProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#url)
})?;
} else {
serialize_struct.skip_field("url")?;
}
serialize_struct.end()
}
}
impl<'de> Deserialize<'de> for MedicalSignOrSymptom {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
enum Field {
AdditionalType,
AlternateName,
AssociatedAnatomy,
Code,
Description,
DifferentialDiagnosis,
DisambiguatingDescription,
Drug,
Epidemiology,
ExpectedPrognosis,
Funding,
Guideline,
Identifier,
Image,
LegalStatus,
MainEntityOfPage,
MedicineSystem,
Name,
NaturalProgression,
Pathophysiology,
PossibleComplication,
PossibleTreatment,
PotentialAction,
PrimaryPrevention,
RecognizingAuthority,
RelevantSpecialty,
RiskFactor,
SameAs,
SecondaryPrevention,
SignOrSymptom,
Stage,
Status,
Study,
SubjectOf,
TypicalTest,
Url,
Ignore,
}
struct FieldVisitor;
impl<'de> Visitor<'de> for FieldVisitor {
type Value = Field;
fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
formatter.write_str("field identifier")
}
fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
where
E: de::Error,
{
match value {
"additionalType" => Ok(Field::AdditionalType),
"alternateName" => Ok(Field::AlternateName),
"associatedAnatomy" => Ok(Field::AssociatedAnatomy),
"code" => Ok(Field::Code),
"description" => Ok(Field::Description),
"differentialDiagnosis" => Ok(Field::DifferentialDiagnosis),
"disambiguatingDescription" => Ok(Field::DisambiguatingDescription),
"drug" => Ok(Field::Drug),
"epidemiology" => Ok(Field::Epidemiology),
"expectedPrognosis" => Ok(Field::ExpectedPrognosis),
"funding" => Ok(Field::Funding),
"guideline" => Ok(Field::Guideline),
"identifier" => Ok(Field::Identifier),
"image" => Ok(Field::Image),
"legalStatus" => Ok(Field::LegalStatus),
"mainEntityOfPage" => Ok(Field::MainEntityOfPage),
"medicineSystem" => Ok(Field::MedicineSystem),
"name" => Ok(Field::Name),
"naturalProgression" => Ok(Field::NaturalProgression),
"pathophysiology" => Ok(Field::Pathophysiology),
"possibleComplication" => Ok(Field::PossibleComplication),
"possibleTreatment" => Ok(Field::PossibleTreatment),
"potentialAction" => Ok(Field::PotentialAction),
"primaryPrevention" => Ok(Field::PrimaryPrevention),
"recognizingAuthority" => Ok(Field::RecognizingAuthority),
"relevantSpecialty" => Ok(Field::RelevantSpecialty),
"riskFactor" => Ok(Field::RiskFactor),
"sameAs" => Ok(Field::SameAs),
"secondaryPrevention" => Ok(Field::SecondaryPrevention),
"signOrSymptom" => Ok(Field::SignOrSymptom),
"stage" => Ok(Field::Stage),
"status" => Ok(Field::Status),
"study" => Ok(Field::Study),
"subjectOf" => Ok(Field::SubjectOf),
"typicalTest" => Ok(Field::TypicalTest),
"url" => Ok(Field::Url),
_ => Ok(Field::Ignore),
}
}
fn visit_bytes<E>(self, value: &[u8]) -> Result<Self::Value, E>
where
E: de::Error,
{
match value {
b"additionalType" => Ok(Field::AdditionalType),
b"alternateName" => Ok(Field::AlternateName),
b"associatedAnatomy" => Ok(Field::AssociatedAnatomy),
b"code" => Ok(Field::Code),
b"description" => Ok(Field::Description),
b"differentialDiagnosis" => Ok(Field::DifferentialDiagnosis),
b"disambiguatingDescription" => Ok(Field::DisambiguatingDescription),
b"drug" => Ok(Field::Drug),
b"epidemiology" => Ok(Field::Epidemiology),
b"expectedPrognosis" => Ok(Field::ExpectedPrognosis),
b"funding" => Ok(Field::Funding),
b"guideline" => Ok(Field::Guideline),
b"identifier" => Ok(Field::Identifier),
b"image" => Ok(Field::Image),
b"legalStatus" => Ok(Field::LegalStatus),
b"mainEntityOfPage" => Ok(Field::MainEntityOfPage),
b"medicineSystem" => Ok(Field::MedicineSystem),
b"name" => Ok(Field::Name),
b"naturalProgression" => Ok(Field::NaturalProgression),
b"pathophysiology" => Ok(Field::Pathophysiology),
b"possibleComplication" => Ok(Field::PossibleComplication),
b"possibleTreatment" => Ok(Field::PossibleTreatment),
b"potentialAction" => Ok(Field::PotentialAction),
b"primaryPrevention" => Ok(Field::PrimaryPrevention),
b"recognizingAuthority" => Ok(Field::RecognizingAuthority),
b"relevantSpecialty" => Ok(Field::RelevantSpecialty),
b"riskFactor" => Ok(Field::RiskFactor),
b"sameAs" => Ok(Field::SameAs),
b"secondaryPrevention" => Ok(Field::SecondaryPrevention),
b"signOrSymptom" => Ok(Field::SignOrSymptom),
b"stage" => Ok(Field::Stage),
b"status" => Ok(Field::Status),
b"study" => Ok(Field::Study),
b"subjectOf" => Ok(Field::SubjectOf),
b"typicalTest" => Ok(Field::TypicalTest),
b"url" => Ok(Field::Url),
_ => Ok(Field::Ignore),
}
}
}
impl<'de> Deserialize<'de> for Field {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
deserializer.deserialize_identifier(FieldVisitor)
}
}
struct ClassVisitor;
impl<'de> Visitor<'de> for ClassVisitor {
type Value = MedicalSignOrSymptom;
fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
formatter.write_str("schema.org schema MedicalSignOrSymptom")
}
fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error>
where
A: de::MapAccess<'de>,
{
let mut r#additional_type_property = None;
let mut r#alternate_name_property = None;
let mut r#associated_anatomy_property = None;
let mut r#code_property = None;
let mut r#description_property = None;
let mut r#differential_diagnosis_property = None;
let mut r#disambiguating_description_property = None;
let mut r#drug_property = None;
let mut r#epidemiology_property = None;
let mut r#expected_prognosis_property = None;
let mut r#funding_property = None;
let mut r#guideline_property = None;
let mut r#identifier_property = None;
let mut r#image_property = None;
let mut r#legal_status_property = None;
let mut r#main_entity_of_page_property = None;
let mut r#medicine_system_property = None;
let mut r#name_property = None;
let mut r#natural_progression_property = None;
let mut r#pathophysiology_property = None;
let mut r#possible_complication_property = None;
let mut r#possible_treatment_property = None;
let mut r#potential_action_property = None;
let mut r#primary_prevention_property = None;
let mut r#recognizing_authority_property = None;
let mut r#relevant_specialty_property = None;
let mut r#risk_factor_property = None;
let mut r#same_as_property = None;
let mut r#secondary_prevention_property = None;
let mut r#sign_or_symptom_property = None;
let mut r#stage_property = None;
let mut r#status_property = None;
let mut r#study_property = None;
let mut r#subject_of_property = None;
let mut r#typical_test_property = None;
let mut r#url_property = None;
while let Some(key) = map.next_key::<Field>()? {
match key {
Field::AdditionalType => {
if r#additional_type_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"additionalType",
));
}
r#additional_type_property = Some({
struct DeserializeWith(Vec<AdditionalTypeProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::AlternateName => {
if r#alternate_name_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"alternateName",
));
}
r#alternate_name_property = Some({
struct DeserializeWith(Vec<AlternateNameProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::AssociatedAnatomy => {
if r#associated_anatomy_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"associatedAnatomy",
));
}
r#associated_anatomy_property = Some({
struct DeserializeWith(Vec<AssociatedAnatomyProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Code => {
if r#code_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field("code"));
}
r#code_property = Some({
struct DeserializeWith(Vec<CodeProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Description => {
if r#description_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"description",
));
}
r#description_property = Some({
struct DeserializeWith(Vec<DescriptionProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::DifferentialDiagnosis => {
if r#differential_diagnosis_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"differentialDiagnosis",
));
}
r#differential_diagnosis_property = Some({
struct DeserializeWith(Vec<DifferentialDiagnosisProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::DisambiguatingDescription => {
if r#disambiguating_description_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"disambiguatingDescription",
));
}
r#disambiguating_description_property = Some({
struct DeserializeWith(Vec<DisambiguatingDescriptionProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Drug => {
if r#drug_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field("drug"));
}
r#drug_property = Some({
struct DeserializeWith(Vec<DrugProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Epidemiology => {
if r#epidemiology_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"epidemiology",
));
}
r#epidemiology_property = Some({
struct DeserializeWith(Vec<EpidemiologyProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::ExpectedPrognosis => {
if r#expected_prognosis_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"expectedPrognosis",
));
}
r#expected_prognosis_property = Some({
struct DeserializeWith(Vec<ExpectedPrognosisProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Funding => {
if r#funding_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"funding",
));
}
r#funding_property = Some({
struct DeserializeWith(Vec<FundingProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Guideline => {
if r#guideline_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"guideline",
));
}
r#guideline_property = Some({
struct DeserializeWith(Vec<GuidelineProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Identifier => {
if r#identifier_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"identifier",
));
}
r#identifier_property = Some({
struct DeserializeWith(Vec<IdentifierProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Image => {
if r#image_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field("image"));
}
r#image_property = Some({
struct DeserializeWith(Vec<ImageProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::LegalStatus => {
if r#legal_status_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"legalStatus",
));
}
r#legal_status_property = Some({
struct DeserializeWith(Vec<LegalStatusProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::MainEntityOfPage => {
if r#main_entity_of_page_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"mainEntityOfPage",
));
}
r#main_entity_of_page_property = Some({
struct DeserializeWith(Vec<MainEntityOfPageProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::MedicineSystem => {
if r#medicine_system_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"medicineSystem",
));
}
r#medicine_system_property = Some({
struct DeserializeWith(Vec<MedicineSystemProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Name => {
if r#name_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field("name"));
}
r#name_property = Some({
struct DeserializeWith(Vec<NameProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::NaturalProgression => {
if r#natural_progression_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"naturalProgression",
));
}
r#natural_progression_property = Some({
struct DeserializeWith(Vec<NaturalProgressionProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Pathophysiology => {
if r#pathophysiology_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"pathophysiology",
));
}
r#pathophysiology_property = Some({
struct DeserializeWith(Vec<PathophysiologyProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::PossibleComplication => {
if r#possible_complication_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"possibleComplication",
));
}
r#possible_complication_property = Some({
struct DeserializeWith(Vec<PossibleComplicationProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::PossibleTreatment => {
if r#possible_treatment_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"possibleTreatment",
));
}
r#possible_treatment_property = Some({
struct DeserializeWith(Vec<PossibleTreatmentProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::PotentialAction => {
if r#potential_action_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"potentialAction",
));
}
r#potential_action_property = Some({
struct DeserializeWith(Vec<PotentialActionProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::PrimaryPrevention => {
if r#primary_prevention_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"primaryPrevention",
));
}
r#primary_prevention_property = Some({
struct DeserializeWith(Vec<PrimaryPreventionProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::RecognizingAuthority => {
if r#recognizing_authority_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"recognizingAuthority",
));
}
r#recognizing_authority_property = Some({
struct DeserializeWith(Vec<RecognizingAuthorityProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::RelevantSpecialty => {
if r#relevant_specialty_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"relevantSpecialty",
));
}
r#relevant_specialty_property = Some({
struct DeserializeWith(Vec<RelevantSpecialtyProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::RiskFactor => {
if r#risk_factor_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"riskFactor",
));
}
r#risk_factor_property = Some({
struct DeserializeWith(Vec<RiskFactorProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::SameAs => {
if r#same_as_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field("sameAs"));
}
r#same_as_property = Some({
struct DeserializeWith(Vec<SameAsProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::SecondaryPrevention => {
if r#secondary_prevention_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"secondaryPrevention",
));
}
r#secondary_prevention_property = Some({
struct DeserializeWith(Vec<SecondaryPreventionProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::SignOrSymptom => {
if r#sign_or_symptom_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"signOrSymptom",
));
}
r#sign_or_symptom_property = Some({
struct DeserializeWith(Vec<SignOrSymptomProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Stage => {
if r#stage_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field("stage"));
}
r#stage_property = Some({
struct DeserializeWith(Vec<StageProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Status => {
if r#status_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field("status"));
}
r#status_property = Some({
struct DeserializeWith(Vec<StatusProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Study => {
if r#study_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field("study"));
}
r#study_property = Some({
struct DeserializeWith(Vec<StudyProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::SubjectOf => {
if r#subject_of_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"subjectOf",
));
}
r#subject_of_property = Some({
struct DeserializeWith(Vec<SubjectOfProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::TypicalTest => {
if r#typical_test_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"typicalTest",
));
}
r#typical_test_property = Some({
struct DeserializeWith(Vec<TypicalTestProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Url => {
if r#url_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field("url"));
}
r#url_property = Some({
struct DeserializeWith(Vec<UrlProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
_ => {
let _ = map.next_value::<de::IgnoredAny>()?;
}
}
}
Ok(MedicalSignOrSymptom {
r#additional_type: r#additional_type_property.unwrap_or_default(),
r#alternate_name: r#alternate_name_property.unwrap_or_default(),
r#associated_anatomy: r#associated_anatomy_property.unwrap_or_default(),
r#code: r#code_property.unwrap_or_default(),
r#description: r#description_property.unwrap_or_default(),
r#differential_diagnosis: r#differential_diagnosis_property
.unwrap_or_default(),
r#disambiguating_description: r#disambiguating_description_property
.unwrap_or_default(),
r#drug: r#drug_property.unwrap_or_default(),
r#epidemiology: r#epidemiology_property.unwrap_or_default(),
r#expected_prognosis: r#expected_prognosis_property.unwrap_or_default(),
r#funding: r#funding_property.unwrap_or_default(),
r#guideline: r#guideline_property.unwrap_or_default(),
r#identifier: r#identifier_property.unwrap_or_default(),
r#image: r#image_property.unwrap_or_default(),
r#legal_status: r#legal_status_property.unwrap_or_default(),
r#main_entity_of_page: r#main_entity_of_page_property.unwrap_or_default(),
r#medicine_system: r#medicine_system_property.unwrap_or_default(),
r#name: r#name_property.unwrap_or_default(),
r#natural_progression: r#natural_progression_property.unwrap_or_default(),
r#pathophysiology: r#pathophysiology_property.unwrap_or_default(),
r#possible_complication: r#possible_complication_property
.unwrap_or_default(),
r#possible_treatment: r#possible_treatment_property.unwrap_or_default(),
r#potential_action: r#potential_action_property.unwrap_or_default(),
r#primary_prevention: r#primary_prevention_property.unwrap_or_default(),
r#recognizing_authority: r#recognizing_authority_property
.unwrap_or_default(),
r#relevant_specialty: r#relevant_specialty_property.unwrap_or_default(),
r#risk_factor: r#risk_factor_property.unwrap_or_default(),
r#same_as: r#same_as_property.unwrap_or_default(),
r#secondary_prevention: r#secondary_prevention_property.unwrap_or_default(),
r#sign_or_symptom: r#sign_or_symptom_property.unwrap_or_default(),
r#stage: r#stage_property.unwrap_or_default(),
r#status: r#status_property.unwrap_or_default(),
r#study: r#study_property.unwrap_or_default(),
r#subject_of: r#subject_of_property.unwrap_or_default(),
r#typical_test: r#typical_test_property.unwrap_or_default(),
r#url: r#url_property.unwrap_or_default(),
})
}
}
const FIELDS: &[&str] = &[
"additionalType",
"alternateName",
"associatedAnatomy",
"code",
"description",
"differentialDiagnosis",
"disambiguatingDescription",
"drug",
"epidemiology",
"expectedPrognosis",
"funding",
"guideline",
"identifier",
"image",
"legalStatus",
"mainEntityOfPage",
"medicineSystem",
"name",
"naturalProgression",
"pathophysiology",
"possibleComplication",
"possibleTreatment",
"potentialAction",
"primaryPrevention",
"recognizingAuthority",
"relevantSpecialty",
"riskFactor",
"sameAs",
"secondaryPrevention",
"signOrSymptom",
"stage",
"status",
"study",
"subjectOf",
"typicalTest",
"url",
];
deserializer.deserialize_struct("MedicalSignOrSymptom", FIELDS, ClassVisitor)
}
}
}