pub mod common;
pub mod data_structures;
pub mod data_types;
pub mod demographic;
pub mod ehr;
macro_rules! rm_type_tag {
($ty:ident, $name:literal) => {
#[doc = concat!("Serializes as `\"_type\": \"", $name, "\"`; ignored on input.")]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct $ty;
impl ::serde::Serialize for $ty {
fn serialize<S: ::serde::Serializer>(
&self,
s: S,
) -> ::core::result::Result<S::Ok, S::Error> {
s.serialize_str($name)
}
}
impl<'de> ::serde::Deserialize<'de> for $ty {
fn deserialize<D: ::serde::Deserializer<'de>>(
d: D,
) -> ::core::result::Result<Self, D::Error> {
let _ignored = <::std::string::String as ::serde::Deserialize>::deserialize(d)?;
Ok(Self)
}
}
};
}
pub(crate) use rm_type_tag;