// @generated by openehr-codegen (emit-json) — DO NOT EDIT.
// SPDX-FileCopyrightText: Cadasto B.V.
// SPDX-FileCopyrightText: openEHR Foundation
// SPDX-License-Identifier: Apache-2.0
//! Canonical-JSON `serde::Serialize`/`serde::Deserialize` impls for this
//! crate's generated spec types.
//!
//! Manual (never derived) long-form impls per
//! <https://serde.rs/deserialize-struct.html>: the canonical wire's
//! `_type` discriminator, its context-dependent presence, deep-descendant
//! dispatch and closed key set are not expressible with serde attributes.
//! The shared runtime is `openehr_base::serde_support`.
#![allow(
clippy::all,
clippy::pedantic,
clippy::nursery,
unused_variables,
unused_mut,
unused_qualifications,
reason = "mechanically generated codec text: every item is named by its full path and every branch shape is emitted uniformly, so style and unused-binding lints do not apply — the hand-written runtime carries the lint bar"
)]
impl ::serde::Serialize for crate::v1_1::composition::content::entry::action::Action {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 9usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self
.other_participations
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.workflow_id.is_some() {
__n += 1;
}
if self.provider.is_some() {
__n += 1;
}
if self.protocol.is_some() {
__n += 1;
}
if self.guideline_id.is_some() {
__n += 1;
}
if self.instruction_details.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "ACTION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ACTION")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "language", &self.language)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "encoding", &self.encoding)?;
if let Some(__v) = &self.other_participations
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "other_participations", __v)?;
}
if let Some(__v) = &self.workflow_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "workflow_id", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "subject", &self.subject)?;
if let Some(__v) = &self.provider {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "provider", __v)?;
}
if let Some(__v) = &self.protocol {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "protocol", __v)?;
}
if let Some(__v) = &self.guideline_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "guideline_id", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "time", &self.time)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"ism_transition",
&self.ism_transition,
)?;
if let Some(__v) = &self.instruction_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "instruction_details", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"description",
&self.description,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::composition::content::entry::action::Action {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"description",
"encoding",
"feeder_audit",
"guideline_id",
"instruction_details",
"ism_transition",
"language",
"links",
"name",
"other_participations",
"protocol",
"provider",
"subject",
"time",
"uid",
"workflow_id",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
__F11,
__F12,
__F13,
__F14,
__F15,
__F16,
__F17,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"language" => ::core::result::Result::Ok(__Field::__F6),
"encoding" => ::core::result::Result::Ok(__Field::__F7),
"other_participations" => ::core::result::Result::Ok(__Field::__F8),
"workflow_id" => ::core::result::Result::Ok(__Field::__F9),
"subject" => ::core::result::Result::Ok(__Field::__F10),
"provider" => ::core::result::Result::Ok(__Field::__F11),
"protocol" => ::core::result::Result::Ok(__Field::__F12),
"guideline_id" => ::core::result::Result::Ok(__Field::__F13),
"time" => ::core::result::Result::Ok(__Field::__F14),
"ism_transition" => ::core::result::Result::Ok(__Field::__F15),
"instruction_details" => ::core::result::Result::Ok(__Field::__F16),
"description" => ::core::result::Result::Ok(__Field::__F17),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "ACTION", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::composition::content::entry::action::Action;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ACTION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<_> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s10: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s11: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s12: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s13: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s14: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s15: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s16: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s17: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ACTION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("language"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("encoding"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_participations"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("workflow_id"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("subject"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F11 => {
if __s11.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("provider"),
);
}
__s11 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F12 => {
if __s12.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("protocol"),
);
}
__s12 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F13 => {
if __s13.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("guideline_id"),
);
}
__s13 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F14 => {
if __s14.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time"),
);
}
__s14 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F15 => {
if __s15.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("ism_transition"),
);
}
__s15 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F16 => {
if __s16.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("instruction_details"),
);
}
__s16 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F17 => {
if __s17.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("description"),
);
}
__s17 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::composition::content::entry::action::Action {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
language: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("language"))?,
encoding: __s7
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("encoding"))?,
other_participations: __s8,
workflow_id: __s9.flatten(),
subject: __s10
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("subject"))?,
provider: __s11.flatten(),
protocol: __s12.flatten(),
guideline_id: __s13.flatten(),
time: __s14
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("time"))?,
ism_transition: __s15
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("ism_transition"))?,
instruction_details: __s16.flatten(),
description: __s17
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("description"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "ACTION", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::composition::content::entry::activity::Activity {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 5usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.timing.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "ACTIVITY", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ACTIVITY")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
if let Some(__v) = &self.timing {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "timing", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"action_archetype_id",
&self.action_archetype_id,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"description",
&self.description,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::composition::content::entry::activity::Activity
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"action_archetype_id",
"archetype_details",
"archetype_node_id",
"description",
"feeder_audit",
"links",
"name",
"timing",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"timing" => ::core::result::Result::Ok(__Field::__F6),
"action_archetype_id" => ::core::result::Result::Ok(__Field::__F7),
"description" => ::core::result::Result::Ok(__Field::__F8),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "ACTIVITY", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::composition::content::entry::activity::Activity;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ACTIVITY` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ACTIVITY"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("timing"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("action_archetype_id"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("description"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::composition::content::entry::activity::Activity {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
timing: __s6.flatten(),
action_archetype_id: __s7.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("action_archetype_id")
})?,
description: __s8
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("description"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "ACTIVITY", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::demographic::actor::Actor {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::demographic::actor::Actor::Agent(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::demographic::actor::Actor::Group(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::demographic::actor::Actor::Organisation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::demographic::actor::Actor::Person(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::demographic::actor::Actor {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["AGENT", "GROUP", "ORGANISATION", "PERSON"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::demographic::actor::Actor;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ACTOR` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"AGENT" => ::core::result::Result::Ok(
crate::v1_1::demographic::actor::Actor::Agent(
::serde::Deserialize::deserialize(__rest)?,
),
),
"GROUP" => ::core::result::Result::Ok(
crate::v1_1::demographic::actor::Actor::Group(
::serde::Deserialize::deserialize(__rest)?,
),
),
"ORGANISATION" => ::core::result::Result::Ok(
crate::v1_1::demographic::actor::Actor::Organisation(
::serde::Deserialize::deserialize(__rest)?,
),
),
"PERSON" => ::core::result::Result::Ok(
crate::v1_1::demographic::actor::Actor::Person(
::serde::Deserialize::deserialize(__rest)?,
),
),
__other => ::core::result::Result::Err(
::openehr_base::serde_support::unexpected_type(
"ACTOR",
__other,
"AGENT, GROUP, ORGANISATION, PERSON",
),
),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"ACTOR",
&__other,
"AGENT, GROUP, ORGANISATION, PERSON",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"ACTOR",
"AGENT, GROUP, ORGANISATION, PERSON",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::demographic::address::Address {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "ADDRESS", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ADDRESS")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "details", &self.details)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::demographic::address::Address {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"details",
"feeder_audit",
"links",
"name",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"details" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "ADDRESS", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::demographic::address::Address;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ADDRESS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ADDRESS"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("details"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::demographic::address::Address {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
details: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("details"))?,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "ADDRESS", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::ehr_extract::message::addressed_message::AddressedMessage {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 5usize;
if self.urgency.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "ADDRESSED_MESSAGE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ADDRESSED_MESSAGE")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "sender", &self.sender)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"sender_reference",
&self.sender_reference,
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "addressees", &self.addressees)?;
if let Some(__v) = &self.urgency {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "urgency", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "message", &self.message)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::ehr_extract::message::addressed_message::AddressedMessage
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"addressees",
"message",
"sender",
"sender_reference",
"urgency",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"sender" => ::core::result::Result::Ok(__Field::__F0),
"sender_reference" => ::core::result::Result::Ok(__Field::__F1),
"addressees" => ::core::result::Result::Ok(__Field::__F2),
"urgency" => ::core::result::Result::Ok(__Field::__F3),
"message" => ::core::result::Result::Ok(__Field::__F4),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"ADDRESSED_MESSAGE",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::ehr_extract::message::addressed_message::AddressedMessage;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ADDRESSED_MESSAGE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ADDRESSED_MESSAGE"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("sender"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("sender_reference"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("addressees"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("urgency"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("message"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::ehr_extract::message::addressed_message::AddressedMessage {
sender: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("sender"))?,
sender_reference: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("sender_reference"))?,
addressees: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("addressees"))?,
urgency: __s3.flatten(),
message: __s4
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("message"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"ADDRESSED_MESSAGE",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::composition::content::entry::admin_entry::AdminEntry {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 7usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self
.other_participations
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.workflow_id.is_some() {
__n += 1;
}
if self.provider.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "ADMIN_ENTRY", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ADMIN_ENTRY")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "language", &self.language)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "encoding", &self.encoding)?;
if let Some(__v) = &self.other_participations
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "other_participations", __v)?;
}
if let Some(__v) = &self.workflow_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "workflow_id", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "subject", &self.subject)?;
if let Some(__v) = &self.provider {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "provider", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "data", &self.data)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::composition::content::entry::admin_entry::AdminEntry
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"data",
"encoding",
"feeder_audit",
"language",
"links",
"name",
"other_participations",
"provider",
"subject",
"uid",
"workflow_id",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
__F11,
__F12,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"language" => ::core::result::Result::Ok(__Field::__F6),
"encoding" => ::core::result::Result::Ok(__Field::__F7),
"other_participations" => ::core::result::Result::Ok(__Field::__F8),
"workflow_id" => ::core::result::Result::Ok(__Field::__F9),
"subject" => ::core::result::Result::Ok(__Field::__F10),
"provider" => ::core::result::Result::Ok(__Field::__F11),
"data" => ::core::result::Result::Ok(__Field::__F12),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"ADMIN_ENTRY",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::composition::content::entry::admin_entry::AdminEntry;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ADMIN_ENTRY` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<_> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s10: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s11: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s12: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ADMIN_ENTRY"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("language"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("encoding"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_participations"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("workflow_id"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("subject"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F11 => {
if __s11.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("provider"),
);
}
__s11 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F12 => {
if __s12.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("data"),
);
}
__s12 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::composition::content::entry::admin_entry::AdminEntry {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
language: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("language"))?,
encoding: __s7
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("encoding"))?,
other_participations: __s8,
workflow_id: __s9.flatten(),
subject: __s10
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("subject"))?,
provider: __s11.flatten(),
data: __s12
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("data"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"ADMIN_ENTRY",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::demographic::agent::Agent {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.contacts.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.details.is_some() {
__n += 1;
}
if self
.reverse_relationships
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self
.relationships
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.languages.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.roles.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "AGENT", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "AGENT")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "identities", &self.identities)?;
if let Some(__v) = &self.contacts
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "contacts", __v)?;
}
if let Some(__v) = &self.details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "details", __v)?;
}
if let Some(__v) = &self.reverse_relationships
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"reverse_relationships",
__v,
)?;
}
if let Some(__v) = &self.relationships
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "relationships", __v)?;
}
if let Some(__v) = &self.languages
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "languages", __v)?;
}
if let Some(__v) = &self.roles
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "roles", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::demographic::agent::Agent {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"contacts",
"details",
"feeder_audit",
"identities",
"languages",
"links",
"name",
"relationships",
"reverse_relationships",
"roles",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
__F11,
__F12,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"identities" => ::core::result::Result::Ok(__Field::__F6),
"contacts" => ::core::result::Result::Ok(__Field::__F7),
"details" => ::core::result::Result::Ok(__Field::__F8),
"reverse_relationships" => ::core::result::Result::Ok(__Field::__F9),
"relationships" => ::core::result::Result::Ok(__Field::__F10),
"languages" => ::core::result::Result::Ok(__Field::__F11),
"roles" => ::core::result::Result::Ok(__Field::__F12),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "AGENT", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::demographic::agent::Agent;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `AGENT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<_> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<_> = None;
let mut __s10: ::core::option::Option<_> = None;
let mut __s11: ::core::option::Option<_> = None;
let mut __s12: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("AGENT"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("identities"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("contacts"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("details"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("reverse_relationships"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("relationships"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F11 => {
if __s11.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("languages"),
);
}
__s11 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F12 => {
if __s12.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("roles"),
);
}
__s12 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::demographic::agent::Agent {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
identities: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("identities"))?,
contacts: __s7,
details: __s8.flatten(),
reverse_relationships: __s9,
relationships: __s10,
languages: ::openehr_base::serde_support::refuse_empty_list(
__s11,
"languages",
)?,
roles: __s12,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "AGENT", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::common::archetyped::archetyped::Archetyped {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.template_id.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "ARCHETYPED", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ARCHETYPED")?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_id",
&self.archetype_id,
)?;
if let Some(__v) = &self.template_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "template_id", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "rm_version", &self.rm_version)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::common::archetyped::archetyped::Archetyped {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["archetype_id", "rm_version", "template_id"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"archetype_id" => ::core::result::Result::Ok(__Field::__F0),
"template_id" => ::core::result::Result::Ok(__Field::__F1),
"rm_version" => ::core::result::Result::Ok(__Field::__F2),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"ARCHETYPED",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::common::archetyped::archetyped::Archetyped;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ARCHETYPED` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ARCHETYPED"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_id"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("template_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("rm_version"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::common::archetyped::archetyped::Archetyped {
archetype_id: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("archetype_id"))?,
template_id: __s1.flatten(),
rm_version: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("rm_version"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "ARCHETYPED", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::common::generic::attestation::Attestation {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 7usize;
if self.description.is_some() {
__n += 1;
}
if self.attested_view.is_some() {
__n += 1;
}
if self.proof.is_some() {
__n += 1;
}
if self.items.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "ATTESTATION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ATTESTATION")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "system_id", &self.system_id)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_committed",
&self.time_committed,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"change_type",
&self.change_type,
)?;
if let Some(__v) = &self.description {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "description", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "committer", &self.committer)?;
if let Some(__v) = &self.attested_view {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "attested_view", __v)?;
}
if let Some(__v) = &self.proof {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "proof", __v)?;
}
if let Some(__v) = &self.items
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "items", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "reason", &self.reason)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "is_pending", &self.is_pending)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::common::generic::attestation::Attestation {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"attested_view",
"change_type",
"committer",
"description",
"is_pending",
"items",
"proof",
"reason",
"system_id",
"time_committed",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"system_id" => ::core::result::Result::Ok(__Field::__F0),
"time_committed" => ::core::result::Result::Ok(__Field::__F1),
"change_type" => ::core::result::Result::Ok(__Field::__F2),
"description" => ::core::result::Result::Ok(__Field::__F3),
"committer" => ::core::result::Result::Ok(__Field::__F4),
"attested_view" => ::core::result::Result::Ok(__Field::__F5),
"proof" => ::core::result::Result::Ok(__Field::__F6),
"items" => ::core::result::Result::Ok(__Field::__F7),
"reason" => ::core::result::Result::Ok(__Field::__F8),
"is_pending" => ::core::result::Result::Ok(__Field::__F9),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"ATTESTATION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::common::generic::attestation::Attestation;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ATTESTATION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<_> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ATTESTATION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("system_id"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_committed"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("change_type"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("description"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("committer"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("attested_view"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("proof"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("items"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("reason"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("is_pending"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::common::generic::attestation::Attestation {
system_id: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("system_id"))?,
time_committed: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("time_committed"))?,
change_type: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("change_type"))?,
description: __s3.flatten(),
committer: __s4
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("committer"))?,
attested_view: __s5.flatten(),
proof: __s6.flatten(),
items: __s7,
reason: __s8
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("reason"))?,
is_pending: __s9
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("is_pending"))?,
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"ATTESTATION",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::common::generic::audit_details::AuditDetailsData {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 5usize;
if self.description.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "AUDIT_DETAILS", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "AUDIT_DETAILS")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "system_id", &self.system_id)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_committed",
&self.time_committed,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"change_type",
&self.change_type,
)?;
if let Some(__v) = &self.description {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "description", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "committer", &self.committer)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::common::generic::audit_details::AuditDetailsData
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"change_type",
"committer",
"description",
"system_id",
"time_committed",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"system_id" => ::core::result::Result::Ok(__Field::__F0),
"time_committed" => ::core::result::Result::Ok(__Field::__F1),
"change_type" => ::core::result::Result::Ok(__Field::__F2),
"description" => ::core::result::Result::Ok(__Field::__F3),
"committer" => ::core::result::Result::Ok(__Field::__F4),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"AUDIT_DETAILS",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::common::generic::audit_details::AuditDetailsData;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `AUDIT_DETAILS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("AUDIT_DETAILS"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("system_id"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_committed"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("change_type"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("description"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("committer"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::common::generic::audit_details::AuditDetailsData {
system_id: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("system_id"))?,
time_committed: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("time_committed"))?,
change_type: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("change_type"))?,
description: __s3.flatten(),
committer: __s4
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("committer"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"AUDIT_DETAILS",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::common::generic::audit_details::AuditDetails {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::common::generic::audit_details::AuditDetails::Attestation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::generic::audit_details::AuditDetails::AuditDetails(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::common::generic::audit_details::AuditDetails {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["ATTESTATION", "AUDIT_DETAILS"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::common::generic::audit_details::AuditDetails;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `AUDIT_DETAILS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"ATTESTATION" => ::core::result::Result::Ok(crate::v1_1::common::generic::audit_details::AuditDetails::Attestation(::serde::Deserialize::deserialize(__rest)?)),
"AUDIT_DETAILS" => ::core::result::Result::Ok(crate::v1_1::common::generic::audit_details::AuditDetails::AuditDetails(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("AUDIT_DETAILS", __other, "ATTESTATION, AUDIT_DETAILS")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"AUDIT_DETAILS",
&__other,
"ATTESTATION, AUDIT_DETAILS",
))
}
None => {
let __rest =
::openehr_base::serde_support::TaggedRest::new(None, __buffered, __map);
::core::result::Result::Ok(
crate::v1_1::common::generic::audit_details::AuditDetails::AuditDetails(
::serde::Deserialize::deserialize(__rest)?,
),
)
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::common::resource::authored_resource::AuthoredResource {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self.is_controlled.is_some() {
__n += 1;
}
if self.translations.is_some() {
__n += 1;
}
if self.description.is_some() {
__n += 1;
}
if self.revision_history.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "AUTHORED_RESOURCE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "AUTHORED_RESOURCE")?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"original_language",
&self.original_language,
)?;
if let Some(__v) = &self.is_controlled {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "is_controlled", __v)?;
}
if let Some(__v) = &self.translations {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "translations", __v)?;
}
if let Some(__v) = &self.description {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "description", __v)?;
}
if let Some(__v) = &self.revision_history {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "revision_history", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::common::resource::authored_resource::AuthoredResource
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"description",
"is_controlled",
"original_language",
"revision_history",
"translations",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"original_language" => ::core::result::Result::Ok(__Field::__F0),
"is_controlled" => ::core::result::Result::Ok(__Field::__F1),
"translations" => ::core::result::Result::Ok(__Field::__F2),
"description" => ::core::result::Result::Ok(__Field::__F3),
"revision_history" => ::core::result::Result::Ok(__Field::__F4),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"AUTHORED_RESOURCE",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::common::resource::authored_resource::AuthoredResource;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `AUTHORED_RESOURCE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("AUTHORED_RESOURCE"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("original_language"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("is_controlled"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("translations"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("description"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("revision_history"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::common::resource::authored_resource::AuthoredResource {
original_language: __s0.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("original_language")
})?,
is_controlled: __s1.flatten(),
translations: __s2.flatten(),
description: __s3.flatten(),
revision_history: __s4.flatten(),
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"AUTHORED_RESOURCE",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::demographic::capability::Capability {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.time_validity.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "CAPABILITY", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "CAPABILITY")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"credentials",
&self.credentials,
)?;
if let Some(__v) = &self.time_validity {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "time_validity", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::demographic::capability::Capability {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"credentials",
"feeder_audit",
"links",
"name",
"time_validity",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"credentials" => ::core::result::Result::Ok(__Field::__F6),
"time_validity" => ::core::result::Result::Ok(__Field::__F7),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"CAPABILITY",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::demographic::capability::Capability;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `CAPABILITY` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("CAPABILITY"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("credentials"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_validity"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::demographic::capability::Capability {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
credentials: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("credentials"))?,
time_validity: __s7.flatten(),
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "CAPABILITY", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::composition::content::entry::care_entry::CareEntry {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::composition::content::entry::care_entry::CareEntry::Action(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::composition::content::entry::care_entry::CareEntry::Evaluation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::composition::content::entry::care_entry::CareEntry::Instruction(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::composition::content::entry::care_entry::CareEntry::Observation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::composition::content::entry::care_entry::CareEntry
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["ACTION", "EVALUATION", "INSTRUCTION", "OBSERVATION"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::composition::content::entry::care_entry::CareEntry;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `CARE_ENTRY` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"ACTION" => ::core::result::Result::Ok(crate::v1_1::composition::content::entry::care_entry::CareEntry::Action(::serde::Deserialize::deserialize(__rest)?)),
"EVALUATION" => ::core::result::Result::Ok(crate::v1_1::composition::content::entry::care_entry::CareEntry::Evaluation(::serde::Deserialize::deserialize(__rest)?)),
"INSTRUCTION" => ::core::result::Result::Ok(crate::v1_1::composition::content::entry::care_entry::CareEntry::Instruction(::serde::Deserialize::deserialize(__rest)?)),
"OBSERVATION" => ::core::result::Result::Ok(crate::v1_1::composition::content::entry::care_entry::CareEntry::Observation(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("CARE_ENTRY", __other, "ACTION, EVALUATION, INSTRUCTION, OBSERVATION")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"CARE_ENTRY",
&__other,
"ACTION, EVALUATION, INSTRUCTION, OBSERVATION",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"CARE_ENTRY",
"ACTION, EVALUATION, INSTRUCTION, OBSERVATION",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl<L: ::serde::Serialize> ::serde::Serialize
for crate::v1_1::composition::view::citation::Citation<L>
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 6usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.meta_data.is_some() {
__n += 1;
}
if self.source_type.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "CITATION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "CITATION")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
if let Some(__v) = &self.meta_data {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "meta_data", __v)?;
}
if let Some(__v) = &self.source_type {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "source_type", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "source_ref", &self.source_ref)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"source_parent_ref",
&self.source_parent_ref,
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "resolved", &self.resolved)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de, L: ::serde::de::DeserializeOwned> ::serde::Deserialize<'de>
for crate::v1_1::composition::view::citation::Citation<L>
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"feeder_audit",
"links",
"meta_data",
"name",
"resolved",
"source_parent_ref",
"source_ref",
"source_type",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"meta_data" => ::core::result::Result::Ok(__Field::__F6),
"source_type" => ::core::result::Result::Ok(__Field::__F7),
"source_ref" => ::core::result::Result::Ok(__Field::__F8),
"source_parent_ref" => ::core::result::Result::Ok(__Field::__F9),
"resolved" => ::core::result::Result::Ok(__Field::__F10),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "CITATION", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor<L>(::core::marker::PhantomData<(L,)>);
impl<'de, L: ::serde::de::DeserializeOwned> ::serde::de::Visitor<'de> for __Visitor<L> {
type Value = crate::v1_1::composition::view::citation::Citation<L>;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `CITATION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s10: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("CITATION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("meta_data"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("source_type"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("source_ref"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("source_parent_ref"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("resolved"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::composition::view::citation::Citation {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
meta_data: __s6.flatten(),
source_type: __s7.flatten(),
source_ref: __s8
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("source_ref"))?,
source_parent_ref: __s9
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("source_parent_ref"))?,
resolved: __s10
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("resolved"))?,
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"CITATION",
__FIELDS,
__Visitor(::core::marker::PhantomData),
)
}
}
impl ::serde::Serialize for crate::v1_1::data_structures::representation::cluster::Cluster {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "CLUSTER", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "CLUSTER")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "items", &self.items)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::data_structures::representation::cluster::Cluster
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"feeder_audit",
"items",
"links",
"name",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"items" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "CLUSTER", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_structures::representation::cluster::Cluster;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `CLUSTER` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("CLUSTER"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("items"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::data_structures::representation::cluster::Cluster {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
items: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("items"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "CLUSTER", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::text::code_phrase::CodePhrase {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.preferred_term.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "CODE_PHRASE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "CODE_PHRASE")?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"terminology_id",
&self.terminology_id,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"code_string",
&self.code_string,
)?;
if let Some(__v) = &self.preferred_term {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "preferred_term", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::data_types::text::code_phrase::CodePhrase {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["code_string", "preferred_term", "terminology_id"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"terminology_id" => ::core::result::Result::Ok(__Field::__F0),
"code_string" => ::core::result::Result::Ok(__Field::__F1),
"preferred_term" => ::core::result::Result::Ok(__Field::__F2),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"CODE_PHRASE",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::text::code_phrase::CodePhrase;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `CODE_PHRASE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("CODE_PHRASE"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("terminology_id"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("code_string"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("preferred_term"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::data_types::text::code_phrase::CodePhrase {
terminology_id: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("terminology_id"))?,
code_string: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("code_string"))?,
preferred_term: __s2.flatten(),
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"CODE_PHRASE",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::support::terminology::code_set_access::CodeSetAccess {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 1usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "CODE_SET_ACCESS", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "CODE_SET_ACCESS")?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::support::terminology::code_set_access::CodeSetAccess
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[];
enum __Field {
__Type,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"CODE_SET_ACCESS",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::support::terminology::code_set_access::CodeSetAccess;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `CODE_SET_ACCESS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("CODE_SET_ACCESS"),
)?;
}
}
}
::core::result::Result::Ok(
crate::v1_1::support::terminology::code_set_access::CodeSetAccess {},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"CODE_SET_ACCESS",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::composition::composition::Composition {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 7usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.context.is_some() {
__n += 1;
}
if self.content.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "COMPOSITION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "COMPOSITION")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "language", &self.language)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "territory", &self.territory)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "category", &self.category)?;
if let Some(__v) = &self.context {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "context", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "composer", &self.composer)?;
if let Some(__v) = &self.content
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "content", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::composition::composition::Composition {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"category",
"composer",
"content",
"context",
"feeder_audit",
"language",
"links",
"name",
"territory",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
__F11,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"language" => ::core::result::Result::Ok(__Field::__F6),
"territory" => ::core::result::Result::Ok(__Field::__F7),
"category" => ::core::result::Result::Ok(__Field::__F8),
"context" => ::core::result::Result::Ok(__Field::__F9),
"composer" => ::core::result::Result::Ok(__Field::__F10),
"content" => ::core::result::Result::Ok(__Field::__F11),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"COMPOSITION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::composition::composition::Composition;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `COMPOSITION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s10: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s11: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("COMPOSITION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("language"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("territory"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("category"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("context"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("composer"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F11 => {
if __s11.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("content"),
);
}
__s11 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::composition::composition::Composition {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
language: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("language"))?,
territory: __s7
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("territory"))?,
category: __s8
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("category"))?,
context: __s9.flatten(),
composer: __s10
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("composer"))?,
content: __s11,
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"COMPOSITION",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::resource::consumable_use::ConsumableUse {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 1usize;
if self.cost_data.is_some() {
__n += 1;
}
if self.amount.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "CONSUMABLE_USE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "CONSUMABLE_USE")?;
if let Some(__v) = &self.cost_data {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "cost_data", __v)?;
}
if let Some(__v) = &self.amount {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "amount", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::resource::consumable_use::ConsumableUse {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["amount", "cost_data"];
enum __Field {
__Type,
__F0,
__F1,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"cost_data" => ::core::result::Result::Ok(__Field::__F0),
"amount" => ::core::result::Result::Ok(__Field::__F1),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"CONSUMABLE_USE",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::resource::consumable_use::ConsumableUse;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `CONSUMABLE_USE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("CONSUMABLE_USE"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("cost_data"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("amount"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::resource::consumable_use::ConsumableUse {
cost_data: __s0.flatten(),
amount: __s1.flatten(),
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"CONSUMABLE_USE",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::demographic::contact::Contact {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.time_validity.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "CONTACT", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "CONTACT")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "addresses", &self.addresses)?;
if let Some(__v) = &self.time_validity {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "time_validity", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::demographic::contact::Contact {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"addresses",
"archetype_details",
"archetype_node_id",
"feeder_audit",
"links",
"name",
"time_validity",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"addresses" => ::core::result::Result::Ok(__Field::__F6),
"time_validity" => ::core::result::Result::Ok(__Field::__F7),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "CONTACT", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::demographic::contact::Contact;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `CONTACT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("CONTACT"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("addresses"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_validity"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::demographic::contact::Contact {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
addresses: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("addresses"))?,
time_validity: __s7.flatten(),
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "CONTACT", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::composition::content::content_item::ContentItem {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::composition::content::content_item::ContentItem::Action(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::composition::content::content_item::ContentItem::AdminEntry(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::composition::content::content_item::ContentItem::Citation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::composition::content::content_item::ContentItem::Evaluation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::composition::content::content_item::ContentItem::GenericEntry(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::composition::content::content_item::ContentItem::Instruction(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::composition::content::content_item::ContentItem::Observation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::composition::content::content_item::ContentItem::Section(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::composition::content::content_item::ContentItem::ViewSection(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::composition::content::content_item::ContentItem
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &[
"ACTION",
"ADMIN_ENTRY",
"CITATION",
"EVALUATION",
"GENERIC_ENTRY",
"INSTRUCTION",
"OBSERVATION",
"SECTION",
"VIEW_SECTION",
];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::composition::content::content_item::ContentItem;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `CONTENT_ITEM` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"ACTION" => ::core::result::Result::Ok(crate::v1_1::composition::content::content_item::ContentItem::Action(::serde::Deserialize::deserialize(__rest)?)),
"ADMIN_ENTRY" => ::core::result::Result::Ok(crate::v1_1::composition::content::content_item::ContentItem::AdminEntry(::serde::Deserialize::deserialize(__rest)?)),
"CITATION" => ::core::result::Result::Ok(crate::v1_1::composition::content::content_item::ContentItem::Citation(::serde::Deserialize::deserialize(__rest)?)),
"EVALUATION" => ::core::result::Result::Ok(crate::v1_1::composition::content::content_item::ContentItem::Evaluation(::serde::Deserialize::deserialize(__rest)?)),
"GENERIC_ENTRY" => ::core::result::Result::Ok(crate::v1_1::composition::content::content_item::ContentItem::GenericEntry(::serde::Deserialize::deserialize(__rest)?)),
"INSTRUCTION" => ::core::result::Result::Ok(crate::v1_1::composition::content::content_item::ContentItem::Instruction(::serde::Deserialize::deserialize(__rest)?)),
"OBSERVATION" => ::core::result::Result::Ok(crate::v1_1::composition::content::content_item::ContentItem::Observation(::serde::Deserialize::deserialize(__rest)?)),
"SECTION" => ::core::result::Result::Ok(crate::v1_1::composition::content::content_item::ContentItem::Section(::serde::Deserialize::deserialize(__rest)?)),
"VIEW_SECTION" => ::core::result::Result::Ok(crate::v1_1::composition::content::content_item::ContentItem::ViewSection(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("CONTENT_ITEM", __other, "ACTION, ADMIN_ENTRY, CITATION, EVALUATION, GENERIC_ENTRY, INSTRUCTION, OBSERVATION, SECTION, VIEW_SECTION")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"CONTENT_ITEM",
&__other,
"ACTION, ADMIN_ENTRY, CITATION, EVALUATION, GENERIC_ENTRY, INSTRUCTION, OBSERVATION, SECTION, VIEW_SECTION",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"CONTENT_ITEM",
"ACTION, ADMIN_ENTRY, CITATION, EVALUATION, GENERIC_ENTRY, INSTRUCTION, OBSERVATION, SECTION, VIEW_SECTION",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::common::change_control::contribution::Contribution {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "CONTRIBUTION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "CONTRIBUTION")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "versions", &self.versions)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "audit", &self.audit)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::common::change_control::contribution::Contribution
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["audit", "uid", "versions"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"uid" => ::core::result::Result::Ok(__Field::__F0),
"versions" => ::core::result::Result::Ok(__Field::__F1),
"audit" => ::core::result::Result::Ok(__Field::__F2),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"CONTRIBUTION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::common::change_control::contribution::Contribution;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `CONTRIBUTION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("CONTRIBUTION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("versions"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("audit"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::common::change_control::contribution::Contribution {
uid: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
versions: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("versions"))?,
audit: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("audit"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"CONTRIBUTION",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::data_structures::data_structure::DataStructure {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::data_structures::data_structure::DataStructure::History(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_structures::data_structure::DataStructure::ItemList(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_structures::data_structure::DataStructure::ItemSingle(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_structures::data_structure::DataStructure::ItemTable(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_structures::data_structure::DataStructure::ItemTree(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::data_structures::data_structure::DataStructure
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &[
"HISTORY",
"ITEM_LIST",
"ITEM_SINGLE",
"ITEM_TABLE",
"ITEM_TREE",
];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_structures::data_structure::DataStructure;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DATA_STRUCTURE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"HISTORY" => ::core::result::Result::Ok(crate::v1_1::data_structures::data_structure::DataStructure::History(::serde::Deserialize::deserialize(__rest)?)),
"ITEM_LIST" => ::core::result::Result::Ok(crate::v1_1::data_structures::data_structure::DataStructure::ItemList(::serde::Deserialize::deserialize(__rest)?)),
"ITEM_SINGLE" => ::core::result::Result::Ok(crate::v1_1::data_structures::data_structure::DataStructure::ItemSingle(::serde::Deserialize::deserialize(__rest)?)),
"ITEM_TABLE" => ::core::result::Result::Ok(crate::v1_1::data_structures::data_structure::DataStructure::ItemTable(::serde::Deserialize::deserialize(__rest)?)),
"ITEM_TREE" => ::core::result::Result::Ok(crate::v1_1::data_structures::data_structure::DataStructure::ItemTree(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("DATA_STRUCTURE", __other, "HISTORY, ITEM_LIST, ITEM_SINGLE, ITEM_TABLE, ITEM_TREE")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"DATA_STRUCTURE",
&__other,
"HISTORY, ITEM_LIST, ITEM_SINGLE, ITEM_TABLE, ITEM_TREE",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"DATA_STRUCTURE",
"HISTORY, ITEM_LIST, ITEM_SINGLE, ITEM_TABLE, ITEM_TREE",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::basic::data_value::DataValue {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::data_types::basic::data_value::DataValue::DvBoolean(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::basic::data_value::DataValue::DvCount(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::basic::data_value::DataValue::DvDate(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::basic::data_value::DataValue::DvDateTime(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::basic::data_value::DataValue::DvDuration(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::basic::data_value::DataValue::DvGeneralTimeSpecification(
__x,
) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_1::data_types::basic::data_value::DataValue::DvIdentifier(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::basic::data_value::DataValue::DvInterval(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::basic::data_value::DataValue::DvMultimedia(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::basic::data_value::DataValue::DvOrdinal(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::basic::data_value::DataValue::DvParagraph(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::basic::data_value::DataValue::DvParsable(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::basic::data_value::DataValue::DvPeriodicTimeSpecification(
__x,
) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_1::data_types::basic::data_value::DataValue::DvProportion(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::basic::data_value::DataValue::DvQuantity(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::basic::data_value::DataValue::DvScale(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::basic::data_value::DataValue::DvState(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::basic::data_value::DataValue::DvText(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::basic::data_value::DataValue::DvTime(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::basic::data_value::DataValue::DvUri(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::data_types::basic::data_value::DataValue {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &[
"DV_BOOLEAN",
"DV_CODED_TEXT",
"DV_COUNT",
"DV_DATE",
"DV_DATE_TIME",
"DV_DURATION",
"DV_EHR_URI",
"DV_GENERAL_TIME_SPECIFICATION",
"DV_IDENTIFIER",
"DV_INTERVAL",
"DV_MULTIMEDIA",
"DV_ORDINAL",
"DV_PARAGRAPH",
"DV_PARSABLE",
"DV_PERIODIC_TIME_SPECIFICATION",
"DV_PROPORTION",
"DV_QUANTITY",
"DV_SCALE",
"DV_STATE",
"DV_TEXT",
"DV_TIME",
"DV_URI",
];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::basic::data_value::DataValue;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DATA_VALUE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_BOOLEAN" => ::core::result::Result::Ok(crate::v1_1::data_types::basic::data_value::DataValue::DvBoolean(::serde::Deserialize::deserialize(__rest)?)),
"DV_CODED_TEXT" => ::core::result::Result::Ok(crate::v1_1::data_types::basic::data_value::DataValue::DvText(::serde::Deserialize::deserialize(__rest)?)),
"DV_COUNT" => ::core::result::Result::Ok(crate::v1_1::data_types::basic::data_value::DataValue::DvCount(::serde::Deserialize::deserialize(__rest)?)),
"DV_DATE" => ::core::result::Result::Ok(crate::v1_1::data_types::basic::data_value::DataValue::DvDate(::serde::Deserialize::deserialize(__rest)?)),
"DV_DATE_TIME" => ::core::result::Result::Ok(crate::v1_1::data_types::basic::data_value::DataValue::DvDateTime(::serde::Deserialize::deserialize(__rest)?)),
"DV_DURATION" => ::core::result::Result::Ok(crate::v1_1::data_types::basic::data_value::DataValue::DvDuration(::serde::Deserialize::deserialize(__rest)?)),
"DV_EHR_URI" => ::core::result::Result::Ok(crate::v1_1::data_types::basic::data_value::DataValue::DvUri(::serde::Deserialize::deserialize(__rest)?)),
"DV_GENERAL_TIME_SPECIFICATION" => ::core::result::Result::Ok(crate::v1_1::data_types::basic::data_value::DataValue::DvGeneralTimeSpecification(::serde::Deserialize::deserialize(__rest)?)),
"DV_IDENTIFIER" => ::core::result::Result::Ok(crate::v1_1::data_types::basic::data_value::DataValue::DvIdentifier(::serde::Deserialize::deserialize(__rest)?)),
"DV_INTERVAL" => ::core::result::Result::Ok(crate::v1_1::data_types::basic::data_value::DataValue::DvInterval(::serde::Deserialize::deserialize(__rest)?)),
"DV_MULTIMEDIA" => ::core::result::Result::Ok(crate::v1_1::data_types::basic::data_value::DataValue::DvMultimedia(::serde::Deserialize::deserialize(__rest)?)),
"DV_ORDINAL" => ::core::result::Result::Ok(crate::v1_1::data_types::basic::data_value::DataValue::DvOrdinal(::serde::Deserialize::deserialize(__rest)?)),
"DV_PARAGRAPH" => ::core::result::Result::Ok(crate::v1_1::data_types::basic::data_value::DataValue::DvParagraph(::serde::Deserialize::deserialize(__rest)?)),
"DV_PARSABLE" => ::core::result::Result::Ok(crate::v1_1::data_types::basic::data_value::DataValue::DvParsable(::serde::Deserialize::deserialize(__rest)?)),
"DV_PERIODIC_TIME_SPECIFICATION" => ::core::result::Result::Ok(crate::v1_1::data_types::basic::data_value::DataValue::DvPeriodicTimeSpecification(::serde::Deserialize::deserialize(__rest)?)),
"DV_PROPORTION" => ::core::result::Result::Ok(crate::v1_1::data_types::basic::data_value::DataValue::DvProportion(::serde::Deserialize::deserialize(__rest)?)),
"DV_QUANTITY" => ::core::result::Result::Ok(crate::v1_1::data_types::basic::data_value::DataValue::DvQuantity(::serde::Deserialize::deserialize(__rest)?)),
"DV_SCALE" => ::core::result::Result::Ok(crate::v1_1::data_types::basic::data_value::DataValue::DvScale(::serde::Deserialize::deserialize(__rest)?)),
"DV_STATE" => ::core::result::Result::Ok(crate::v1_1::data_types::basic::data_value::DataValue::DvState(::serde::Deserialize::deserialize(__rest)?)),
"DV_TEXT" => ::core::result::Result::Ok(crate::v1_1::data_types::basic::data_value::DataValue::DvText(::serde::Deserialize::deserialize(__rest)?)),
"DV_TIME" => ::core::result::Result::Ok(crate::v1_1::data_types::basic::data_value::DataValue::DvTime(::serde::Deserialize::deserialize(__rest)?)),
"DV_URI" => ::core::result::Result::Ok(crate::v1_1::data_types::basic::data_value::DataValue::DvUri(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("DATA_VALUE", __other, "DV_BOOLEAN, DV_CODED_TEXT, DV_COUNT, DV_DATE, DV_DATE_TIME, DV_DURATION, DV_EHR_URI, DV_GENERAL_TIME_SPECIFICATION, DV_IDENTIFIER, DV_INTERVAL, DV_MULTIMEDIA, DV_ORDINAL, DV_PARAGRAPH, DV_PARSABLE, DV_PERIODIC_TIME_SPECIFICATION, DV_PROPORTION, DV_QUANTITY, DV_SCALE, DV_STATE, DV_TEXT, DV_TIME, DV_URI")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"DATA_VALUE",
&__other,
"DV_BOOLEAN, DV_CODED_TEXT, DV_COUNT, DV_DATE, DV_DATE_TIME, DV_DURATION, DV_EHR_URI, DV_GENERAL_TIME_SPECIFICATION, DV_IDENTIFIER, DV_INTERVAL, DV_MULTIMEDIA, DV_ORDINAL, DV_PARAGRAPH, DV_PARSABLE, DV_PERIODIC_TIME_SPECIFICATION, DV_PROPORTION, DV_QUANTITY, DV_SCALE, DV_STATE, DV_TEXT, DV_TIME, DV_URI",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"DATA_VALUE",
"DV_BOOLEAN, DV_CODED_TEXT, DV_COUNT, DV_DATE, DV_DATE_TIME, DV_DURATION, DV_EHR_URI, DV_GENERAL_TIME_SPECIFICATION, DV_IDENTIFIER, DV_INTERVAL, DV_MULTIMEDIA, DV_ORDINAL, DV_PARAGRAPH, DV_PARSABLE, DV_PERIODIC_TIME_SPECIFICATION, DV_PROPORTION, DV_QUANTITY, DV_SCALE, DV_STATE, DV_TEXT, DV_TIME, DV_URI",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize
for crate::v1_1::data_types::quantity::dv_absolute_quantity::DvAbsoluteQuantity
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::data_types::quantity::dv_absolute_quantity::DvAbsoluteQuantity::DvDate(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_1::data_types::quantity::dv_absolute_quantity::DvAbsoluteQuantity::DvDateTime(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_1::data_types::quantity::dv_absolute_quantity::DvAbsoluteQuantity::DvTime(__x) => ::serde::Serialize::serialize(__x, __serializer),
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::data_types::quantity::dv_absolute_quantity::DvAbsoluteQuantity
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["DV_DATE", "DV_DATE_TIME", "DV_TIME"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value =
crate::v1_1::data_types::quantity::dv_absolute_quantity::DvAbsoluteQuantity;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_ABSOLUTE_QUANTITY` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_DATE" => ::core::result::Result::Ok(crate::v1_1::data_types::quantity::dv_absolute_quantity::DvAbsoluteQuantity::DvDate(::serde::Deserialize::deserialize(__rest)?)),
"DV_DATE_TIME" => ::core::result::Result::Ok(crate::v1_1::data_types::quantity::dv_absolute_quantity::DvAbsoluteQuantity::DvDateTime(::serde::Deserialize::deserialize(__rest)?)),
"DV_TIME" => ::core::result::Result::Ok(crate::v1_1::data_types::quantity::dv_absolute_quantity::DvAbsoluteQuantity::DvTime(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("DV_ABSOLUTE_QUANTITY", __other, "DV_DATE, DV_DATE_TIME, DV_TIME")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"DV_ABSOLUTE_QUANTITY",
&__other,
"DV_DATE, DV_DATE_TIME, DV_TIME",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"DV_ABSOLUTE_QUANTITY",
"DV_DATE, DV_DATE_TIME, DV_TIME",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::quantity::dv_amount::DvAmount {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::data_types::quantity::dv_amount::DvAmount::DvCount(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::quantity::dv_amount::DvAmount::DvDuration(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::quantity::dv_amount::DvAmount::DvProportion(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::quantity::dv_amount::DvAmount::DvQuantity(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::data_types::quantity::dv_amount::DvAmount {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["DV_COUNT", "DV_DURATION", "DV_PROPORTION", "DV_QUANTITY"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::quantity::dv_amount::DvAmount;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_AMOUNT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_COUNT" => ::core::result::Result::Ok(crate::v1_1::data_types::quantity::dv_amount::DvAmount::DvCount(::serde::Deserialize::deserialize(__rest)?)),
"DV_DURATION" => ::core::result::Result::Ok(crate::v1_1::data_types::quantity::dv_amount::DvAmount::DvDuration(::serde::Deserialize::deserialize(__rest)?)),
"DV_PROPORTION" => ::core::result::Result::Ok(crate::v1_1::data_types::quantity::dv_amount::DvAmount::DvProportion(::serde::Deserialize::deserialize(__rest)?)),
"DV_QUANTITY" => ::core::result::Result::Ok(crate::v1_1::data_types::quantity::dv_amount::DvAmount::DvQuantity(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("DV_AMOUNT", __other, "DV_COUNT, DV_DURATION, DV_PROPORTION, DV_QUANTITY")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"DV_AMOUNT",
&__other,
"DV_COUNT, DV_DURATION, DV_PROPORTION, DV_QUANTITY",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"DV_AMOUNT",
"DV_COUNT, DV_DURATION, DV_PROPORTION, DV_QUANTITY",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::basic::dv_boolean::DvBoolean {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_BOOLEAN", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_BOOLEAN")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::data_types::basic::dv_boolean::DvBoolean {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["value"];
enum __Field {
__Type,
__F0,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"value" => ::core::result::Result::Ok(__Field::__F0),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"DV_BOOLEAN",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::basic::dv_boolean::DvBoolean;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_BOOLEAN` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_BOOLEAN"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::data_types::basic::dv_boolean::DvBoolean {
value: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "DV_BOOLEAN", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::text::dv_coded_text::DvCodedText {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.hyperlink.is_some() {
__n += 1;
}
if self.formatting.is_some() {
__n += 1;
}
if self.mappings.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.language.is_some() {
__n += 1;
}
if self.encoding.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_CODED_TEXT", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_CODED_TEXT")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
if let Some(__v) = &self.hyperlink {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "hyperlink", __v)?;
}
if let Some(__v) = &self.formatting {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "formatting", __v)?;
}
if let Some(__v) = &self.mappings
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "mappings", __v)?;
}
if let Some(__v) = &self.language {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "language", __v)?;
}
if let Some(__v) = &self.encoding {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "encoding", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"defining_code",
&self.defining_code,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::data_types::text::dv_coded_text::DvCodedText {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"defining_code",
"encoding",
"formatting",
"hyperlink",
"language",
"mappings",
"value",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"value" => ::core::result::Result::Ok(__Field::__F0),
"hyperlink" => ::core::result::Result::Ok(__Field::__F1),
"formatting" => ::core::result::Result::Ok(__Field::__F2),
"mappings" => ::core::result::Result::Ok(__Field::__F3),
"language" => ::core::result::Result::Ok(__Field::__F4),
"encoding" => ::core::result::Result::Ok(__Field::__F5),
"defining_code" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"DV_CODED_TEXT",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::text::dv_coded_text::DvCodedText;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_CODED_TEXT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_CODED_TEXT"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("hyperlink"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("formatting"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("mappings"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("language"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("encoding"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("defining_code"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::data_types::text::dv_coded_text::DvCodedText {
value: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
hyperlink: __s1.flatten(),
formatting: __s2.flatten(),
mappings: __s3,
language: __s4.flatten(),
encoding: __s5.flatten(),
defining_code: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("defining_code"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"DV_CODED_TEXT",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::quantity::dv_count::DvCount {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self.normal_status.is_some() {
__n += 1;
}
if self.normal_range.is_some() {
__n += 1;
}
if self
.other_reference_ranges
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.magnitude_status.is_some() {
__n += 1;
}
if self.accuracy.is_some() {
__n += 1;
}
if self.accuracy_is_percent.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_COUNT", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_COUNT")?;
if let Some(__v) = &self.normal_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_status", __v)?;
}
if let Some(__v) = &self.normal_range {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_range", __v)?;
}
if let Some(__v) = &self.other_reference_ranges
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"other_reference_ranges",
__v,
)?;
}
if let Some(__v) = &self.magnitude_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "magnitude_status", __v)?;
}
if let Some(__v) = &self.accuracy {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "accuracy", __v)?;
}
if let Some(__v) = &self.accuracy_is_percent {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "accuracy_is_percent", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "magnitude", &self.magnitude)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::data_types::quantity::dv_count::DvCount {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"accuracy",
"accuracy_is_percent",
"magnitude",
"magnitude_status",
"normal_range",
"normal_status",
"other_reference_ranges",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"normal_status" => ::core::result::Result::Ok(__Field::__F0),
"normal_range" => ::core::result::Result::Ok(__Field::__F1),
"other_reference_ranges" => ::core::result::Result::Ok(__Field::__F2),
"magnitude_status" => ::core::result::Result::Ok(__Field::__F3),
"accuracy" => ::core::result::Result::Ok(__Field::__F4),
"accuracy_is_percent" => ::core::result::Result::Ok(__Field::__F5),
"magnitude" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "DV_COUNT", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::quantity::dv_count::DvCount;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_COUNT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<_> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_COUNT"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_status"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_range"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_reference_ranges"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("magnitude_status"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("accuracy"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("accuracy_is_percent"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("magnitude"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::data_types::quantity::dv_count::DvCount {
normal_status: __s0.flatten(),
normal_range: __s1.flatten(),
other_reference_ranges: __s2,
magnitude_status: __s3.flatten(),
accuracy: __s4.flatten(),
accuracy_is_percent: __s5.flatten(),
magnitude: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("magnitude"))?,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "DV_COUNT", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::quantity::date_time::dv_date::DvDate {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self.normal_status.is_some() {
__n += 1;
}
if self.normal_range.is_some() {
__n += 1;
}
if self
.other_reference_ranges
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.magnitude_status.is_some() {
__n += 1;
}
if self.accuracy.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_DATE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_DATE")?;
if let Some(__v) = &self.normal_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_status", __v)?;
}
if let Some(__v) = &self.normal_range {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_range", __v)?;
}
if let Some(__v) = &self.other_reference_ranges
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"other_reference_ranges",
__v,
)?;
}
if let Some(__v) = &self.magnitude_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "magnitude_status", __v)?;
}
if let Some(__v) = &self.accuracy {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "accuracy", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::data_types::quantity::date_time::dv_date::DvDate
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"accuracy",
"magnitude_status",
"normal_range",
"normal_status",
"other_reference_ranges",
"value",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"normal_status" => ::core::result::Result::Ok(__Field::__F0),
"normal_range" => ::core::result::Result::Ok(__Field::__F1),
"other_reference_ranges" => ::core::result::Result::Ok(__Field::__F2),
"magnitude_status" => ::core::result::Result::Ok(__Field::__F3),
"accuracy" => ::core::result::Result::Ok(__Field::__F4),
"value" => ::core::result::Result::Ok(__Field::__F5),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "DV_DATE", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::quantity::date_time::dv_date::DvDate;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_DATE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<_> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_DATE"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_status"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_range"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_reference_ranges"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("magnitude_status"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("accuracy"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::data_types::quantity::date_time::dv_date::DvDate {
normal_status: __s0.flatten(),
normal_range: __s1.flatten(),
other_reference_ranges: __s2,
magnitude_status: __s3.flatten(),
accuracy: __s4.flatten(),
value: __s5
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "DV_DATE", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::quantity::date_time::dv_date_time::DvDateTime {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self.normal_status.is_some() {
__n += 1;
}
if self.normal_range.is_some() {
__n += 1;
}
if self
.other_reference_ranges
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.magnitude_status.is_some() {
__n += 1;
}
if self.accuracy.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_DATE_TIME", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_DATE_TIME")?;
if let Some(__v) = &self.normal_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_status", __v)?;
}
if let Some(__v) = &self.normal_range {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_range", __v)?;
}
if let Some(__v) = &self.other_reference_ranges
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"other_reference_ranges",
__v,
)?;
}
if let Some(__v) = &self.magnitude_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "magnitude_status", __v)?;
}
if let Some(__v) = &self.accuracy {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "accuracy", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::data_types::quantity::date_time::dv_date_time::DvDateTime
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"accuracy",
"magnitude_status",
"normal_range",
"normal_status",
"other_reference_ranges",
"value",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"normal_status" => ::core::result::Result::Ok(__Field::__F0),
"normal_range" => ::core::result::Result::Ok(__Field::__F1),
"other_reference_ranges" => ::core::result::Result::Ok(__Field::__F2),
"magnitude_status" => ::core::result::Result::Ok(__Field::__F3),
"accuracy" => ::core::result::Result::Ok(__Field::__F4),
"value" => ::core::result::Result::Ok(__Field::__F5),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"DV_DATE_TIME",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::quantity::date_time::dv_date_time::DvDateTime;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_DATE_TIME` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<_> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_DATE_TIME"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_status"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_range"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_reference_ranges"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("magnitude_status"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("accuracy"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::data_types::quantity::date_time::dv_date_time::DvDateTime {
normal_status: __s0.flatten(),
normal_range: __s1.flatten(),
other_reference_ranges: __s2,
magnitude_status: __s3.flatten(),
accuracy: __s4.flatten(),
value: __s5
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"DV_DATE_TIME",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::quantity::date_time::dv_duration::DvDuration {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self.normal_status.is_some() {
__n += 1;
}
if self.normal_range.is_some() {
__n += 1;
}
if self
.other_reference_ranges
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.magnitude_status.is_some() {
__n += 1;
}
if self.accuracy.is_some() {
__n += 1;
}
if self.accuracy_is_percent.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_DURATION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_DURATION")?;
if let Some(__v) = &self.normal_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_status", __v)?;
}
if let Some(__v) = &self.normal_range {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_range", __v)?;
}
if let Some(__v) = &self.other_reference_ranges
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"other_reference_ranges",
__v,
)?;
}
if let Some(__v) = &self.magnitude_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "magnitude_status", __v)?;
}
if let Some(__v) = &self.accuracy {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "accuracy", __v)?;
}
if let Some(__v) = &self.accuracy_is_percent {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "accuracy_is_percent", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::data_types::quantity::date_time::dv_duration::DvDuration
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"accuracy",
"accuracy_is_percent",
"magnitude_status",
"normal_range",
"normal_status",
"other_reference_ranges",
"value",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"normal_status" => ::core::result::Result::Ok(__Field::__F0),
"normal_range" => ::core::result::Result::Ok(__Field::__F1),
"other_reference_ranges" => ::core::result::Result::Ok(__Field::__F2),
"magnitude_status" => ::core::result::Result::Ok(__Field::__F3),
"accuracy" => ::core::result::Result::Ok(__Field::__F4),
"accuracy_is_percent" => ::core::result::Result::Ok(__Field::__F5),
"value" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"DV_DURATION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::quantity::date_time::dv_duration::DvDuration;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_DURATION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<_> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_DURATION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_status"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_range"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_reference_ranges"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("magnitude_status"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("accuracy"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("accuracy_is_percent"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::data_types::quantity::date_time::dv_duration::DvDuration {
normal_status: __s0.flatten(),
normal_range: __s1.flatten(),
other_reference_ranges: __s2,
magnitude_status: __s3.flatten(),
accuracy: __s4.flatten(),
accuracy_is_percent: __s5.flatten(),
value: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"DV_DURATION",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::uri::dv_ehr_uri::DvEhrUri {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_EHR_URI", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_EHR_URI")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::data_types::uri::dv_ehr_uri::DvEhrUri {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["value"];
enum __Field {
__Type,
__F0,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"value" => ::core::result::Result::Ok(__Field::__F0),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"DV_EHR_URI",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::uri::dv_ehr_uri::DvEhrUri;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_EHR_URI` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_EHR_URI"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::data_types::uri::dv_ehr_uri::DvEhrUri {
value: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "DV_EHR_URI", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::encapsulated::dv_encapsulated::DvEncapsulated {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::data_types::encapsulated::dv_encapsulated::DvEncapsulated::DvMultimedia(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_1::data_types::encapsulated::dv_encapsulated::DvEncapsulated::DvParsable(__x) => ::serde::Serialize::serialize(__x, __serializer),
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::data_types::encapsulated::dv_encapsulated::DvEncapsulated
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["DV_MULTIMEDIA", "DV_PARSABLE"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::encapsulated::dv_encapsulated::DvEncapsulated;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_ENCAPSULATED` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_MULTIMEDIA" => ::core::result::Result::Ok(crate::v1_1::data_types::encapsulated::dv_encapsulated::DvEncapsulated::DvMultimedia(::serde::Deserialize::deserialize(__rest)?)),
"DV_PARSABLE" => ::core::result::Result::Ok(crate::v1_1::data_types::encapsulated::dv_encapsulated::DvEncapsulated::DvParsable(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("DV_ENCAPSULATED", __other, "DV_MULTIMEDIA, DV_PARSABLE")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"DV_ENCAPSULATED",
&__other,
"DV_MULTIMEDIA, DV_PARSABLE",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"DV_ENCAPSULATED",
"DV_MULTIMEDIA, DV_PARSABLE",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::time_specification::dv_general_time_specification::DvGeneralTimeSpecification {
fn serialize<__S: ::serde::Serializer>(&self, __serializer: __S) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_GENERAL_TIME_SPECIFICATION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_GENERAL_TIME_SPECIFICATION")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::data_types::time_specification::dv_general_time_specification::DvGeneralTimeSpecification {
fn deserialize<__D: ::serde::Deserializer<'de>>(__deserializer: __D) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["value"];
enum __Field { __Type, __F0, }
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(__deserializer: __D) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(self, __v: &str) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"value" => ::core::result::Result::Ok(__Field::__F0),
_ => ::core::result::Result::Err(::openehr_base::serde_support::unknown_field(__v, "DV_GENERAL_TIME_SPECIFICATION", __FIELDS)),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::time_specification::dv_general_time_specification::DvGeneralTimeSpecification;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_GENERAL_TIME_SPECIFICATION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(self, mut __map: __A) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type { return ::core::result::Result::Err(::serde::de::Error::duplicate_field("_type")); }
__seen_type = true;
::serde::de::MapAccess::next_value_seed(&mut __map, ::openehr_base::serde_support::ExpectedType("DV_GENERAL_TIME_SPECIFICATION"))?;
}
__Field::__F0 => {
if __s0.is_some() { return ::core::result::Result::Err(::serde::de::Error::duplicate_field("value")); }
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::data_types::time_specification::dv_general_time_specification::DvGeneralTimeSpecification {
value: __s0.flatten().ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "DV_GENERAL_TIME_SPECIFICATION", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::basic::dv_identifier::DvIdentifier {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self.issuer.is_some() {
__n += 1;
}
if self.assigner.is_some() {
__n += 1;
}
if self.r#type.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_IDENTIFIER", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_IDENTIFIER")?;
if let Some(__v) = &self.issuer {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "issuer", __v)?;
}
if let Some(__v) = &self.assigner {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "assigner", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "id", &self.id)?;
if let Some(__v) = &self.r#type {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "type", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::data_types::basic::dv_identifier::DvIdentifier
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["assigner", "id", "issuer", "type"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"issuer" => ::core::result::Result::Ok(__Field::__F0),
"assigner" => ::core::result::Result::Ok(__Field::__F1),
"id" => ::core::result::Result::Ok(__Field::__F2),
"type" => ::core::result::Result::Ok(__Field::__F3),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"DV_IDENTIFIER",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::basic::dv_identifier::DvIdentifier;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_IDENTIFIER` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_IDENTIFIER"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("issuer"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("assigner"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("id"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("type"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::data_types::basic::dv_identifier::DvIdentifier {
issuer: __s0.flatten(),
assigner: __s1.flatten(),
id: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("id"))?,
r#type: __s3.flatten(),
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"DV_IDENTIFIER",
__FIELDS,
__Visitor,
)
}
}
impl<T: ::serde::Serialize> ::serde::Serialize
for crate::v1_1::data_types::quantity::dv_interval::DvInterval<T>
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 5usize;
if self.lower.is_some() {
__n += 1;
}
if self.upper.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_INTERVAL", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_INTERVAL")?;
if let Some(__v) = &self.lower {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "lower", __v)?;
}
if let Some(__v) = &self.upper {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "upper", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"lower_unbounded",
&self.lower_unbounded,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"upper_unbounded",
&self.upper_unbounded,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"lower_included",
&self.lower_included,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"upper_included",
&self.upper_included,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::Deserialize<'de>
for crate::v1_1::data_types::quantity::dv_interval::DvInterval<T>
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"lower",
"lower_included",
"lower_unbounded",
"upper",
"upper_included",
"upper_unbounded",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"lower" => ::core::result::Result::Ok(__Field::__F0),
"upper" => ::core::result::Result::Ok(__Field::__F1),
"lower_unbounded" => ::core::result::Result::Ok(__Field::__F2),
"upper_unbounded" => ::core::result::Result::Ok(__Field::__F3),
"lower_included" => ::core::result::Result::Ok(__Field::__F4),
"upper_included" => ::core::result::Result::Ok(__Field::__F5),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"DV_INTERVAL",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor<T>(::core::marker::PhantomData<(T,)>);
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::de::Visitor<'de> for __Visitor<T> {
type Value = crate::v1_1::data_types::quantity::dv_interval::DvInterval<T>;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_INTERVAL` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_INTERVAL"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("lower"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("upper"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("lower_unbounded"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("upper_unbounded"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("lower_included"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("upper_included"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::data_types::quantity::dv_interval::DvInterval {
lower: __s0.flatten(),
upper: __s1.flatten(),
lower_unbounded: __s2.flatten().unwrap_or(false),
upper_unbounded: __s3.flatten().unwrap_or(false),
lower_included: __s4.flatten().unwrap_or(true),
upper_included: __s5.flatten().unwrap_or(true),
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"DV_INTERVAL",
__FIELDS,
__Visitor(::core::marker::PhantomData),
)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::encapsulated::dv_multimedia::DvMultimedia {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.charset.is_some() {
__n += 1;
}
if self.language.is_some() {
__n += 1;
}
if self.alternate_text.is_some() {
__n += 1;
}
if self.uri.is_some() {
__n += 1;
}
if self.data.is_some() {
__n += 1;
}
if self.compression_algorithm.is_some() {
__n += 1;
}
if self.integrity_check.is_some() {
__n += 1;
}
if self.integrity_check_algorithm.is_some() {
__n += 1;
}
if self.thumbnail.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_MULTIMEDIA", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_MULTIMEDIA")?;
if let Some(__v) = &self.charset {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "charset", __v)?;
}
if let Some(__v) = &self.language {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "language", __v)?;
}
if let Some(__v) = &self.alternate_text {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "alternate_text", __v)?;
}
if let Some(__v) = &self.uri {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uri", __v)?;
}
if let Some(__v) = &self.data {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "data", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "media_type", &self.media_type)?;
if let Some(__v) = &self.compression_algorithm {
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"compression_algorithm",
__v,
)?;
}
if let Some(__v) = &self.integrity_check {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "integrity_check", __v)?;
}
if let Some(__v) = &self.integrity_check_algorithm {
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"integrity_check_algorithm",
__v,
)?;
}
if let Some(__v) = &self.thumbnail {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "thumbnail", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "size", &self.size)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::data_types::encapsulated::dv_multimedia::DvMultimedia
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"alternate_text",
"charset",
"compression_algorithm",
"data",
"integrity_check",
"integrity_check_algorithm",
"language",
"media_type",
"size",
"thumbnail",
"uri",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"charset" => ::core::result::Result::Ok(__Field::__F0),
"language" => ::core::result::Result::Ok(__Field::__F1),
"alternate_text" => ::core::result::Result::Ok(__Field::__F2),
"uri" => ::core::result::Result::Ok(__Field::__F3),
"data" => ::core::result::Result::Ok(__Field::__F4),
"media_type" => ::core::result::Result::Ok(__Field::__F5),
"compression_algorithm" => ::core::result::Result::Ok(__Field::__F6),
"integrity_check" => ::core::result::Result::Ok(__Field::__F7),
"integrity_check_algorithm" => {
::core::result::Result::Ok(__Field::__F8)
}
"thumbnail" => ::core::result::Result::Ok(__Field::__F9),
"size" => ::core::result::Result::Ok(__Field::__F10),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"DV_MULTIMEDIA",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::encapsulated::dv_multimedia::DvMultimedia;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_MULTIMEDIA` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s10: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_MULTIMEDIA"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("charset"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("language"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("alternate_text"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uri"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("data"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("media_type"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("compression_algorithm"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("integrity_check"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field(
"integrity_check_algorithm",
),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("thumbnail"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("size"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::data_types::encapsulated::dv_multimedia::DvMultimedia {
charset: __s0.flatten(),
language: __s1.flatten(),
alternate_text: __s2.flatten(),
uri: __s3.flatten(),
data: __s4.flatten(),
media_type: __s5
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("media_type"))?,
compression_algorithm: __s6.flatten(),
integrity_check: __s7.flatten(),
integrity_check_algorithm: __s8.flatten(),
thumbnail: __s9.flatten(),
size: __s10
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("size"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"DV_MULTIMEDIA",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::quantity::dv_ordered::DvOrdered {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::data_types::quantity::dv_ordered::DvOrdered::DvCount(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::quantity::dv_ordered::DvOrdered::DvDate(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::quantity::dv_ordered::DvOrdered::DvDateTime(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::quantity::dv_ordered::DvOrdered::DvDuration(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::quantity::dv_ordered::DvOrdered::DvOrdinal(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::quantity::dv_ordered::DvOrdered::DvProportion(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::quantity::dv_ordered::DvOrdered::DvQuantity(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::quantity::dv_ordered::DvOrdered::DvScale(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::quantity::dv_ordered::DvOrdered::DvTime(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::data_types::quantity::dv_ordered::DvOrdered {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &[
"DV_COUNT",
"DV_DATE",
"DV_DATE_TIME",
"DV_DURATION",
"DV_ORDINAL",
"DV_PROPORTION",
"DV_QUANTITY",
"DV_SCALE",
"DV_TIME",
];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::quantity::dv_ordered::DvOrdered;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_ORDERED` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_COUNT" => ::core::result::Result::Ok(crate::v1_1::data_types::quantity::dv_ordered::DvOrdered::DvCount(::serde::Deserialize::deserialize(__rest)?)),
"DV_DATE" => ::core::result::Result::Ok(crate::v1_1::data_types::quantity::dv_ordered::DvOrdered::DvDate(::serde::Deserialize::deserialize(__rest)?)),
"DV_DATE_TIME" => ::core::result::Result::Ok(crate::v1_1::data_types::quantity::dv_ordered::DvOrdered::DvDateTime(::serde::Deserialize::deserialize(__rest)?)),
"DV_DURATION" => ::core::result::Result::Ok(crate::v1_1::data_types::quantity::dv_ordered::DvOrdered::DvDuration(::serde::Deserialize::deserialize(__rest)?)),
"DV_ORDINAL" => ::core::result::Result::Ok(crate::v1_1::data_types::quantity::dv_ordered::DvOrdered::DvOrdinal(::serde::Deserialize::deserialize(__rest)?)),
"DV_PROPORTION" => ::core::result::Result::Ok(crate::v1_1::data_types::quantity::dv_ordered::DvOrdered::DvProportion(::serde::Deserialize::deserialize(__rest)?)),
"DV_QUANTITY" => ::core::result::Result::Ok(crate::v1_1::data_types::quantity::dv_ordered::DvOrdered::DvQuantity(::serde::Deserialize::deserialize(__rest)?)),
"DV_SCALE" => ::core::result::Result::Ok(crate::v1_1::data_types::quantity::dv_ordered::DvOrdered::DvScale(::serde::Deserialize::deserialize(__rest)?)),
"DV_TIME" => ::core::result::Result::Ok(crate::v1_1::data_types::quantity::dv_ordered::DvOrdered::DvTime(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("DV_ORDERED", __other, "DV_COUNT, DV_DATE, DV_DATE_TIME, DV_DURATION, DV_ORDINAL, DV_PROPORTION, DV_QUANTITY, DV_SCALE, DV_TIME")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"DV_ORDERED",
&__other,
"DV_COUNT, DV_DATE, DV_DATE_TIME, DV_DURATION, DV_ORDINAL, DV_PROPORTION, DV_QUANTITY, DV_SCALE, DV_TIME",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"DV_ORDERED",
"DV_COUNT, DV_DATE, DV_DATE_TIME, DV_DURATION, DV_ORDINAL, DV_PROPORTION, DV_QUANTITY, DV_SCALE, DV_TIME",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::quantity::dv_ordinal::DvOrdinal {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.normal_status.is_some() {
__n += 1;
}
if self.normal_range.is_some() {
__n += 1;
}
if self
.other_reference_ranges
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_ORDINAL", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_ORDINAL")?;
if let Some(__v) = &self.normal_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_status", __v)?;
}
if let Some(__v) = &self.normal_range {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_range", __v)?;
}
if let Some(__v) = &self.other_reference_ranges
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"other_reference_ranges",
__v,
)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "symbol", &self.symbol)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::data_types::quantity::dv_ordinal::DvOrdinal {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"normal_range",
"normal_status",
"other_reference_ranges",
"symbol",
"value",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"normal_status" => ::core::result::Result::Ok(__Field::__F0),
"normal_range" => ::core::result::Result::Ok(__Field::__F1),
"other_reference_ranges" => ::core::result::Result::Ok(__Field::__F2),
"symbol" => ::core::result::Result::Ok(__Field::__F3),
"value" => ::core::result::Result::Ok(__Field::__F4),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"DV_ORDINAL",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::quantity::dv_ordinal::DvOrdinal;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_ORDINAL` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<_> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_ORDINAL"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_status"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_range"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_reference_ranges"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("symbol"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::data_types::quantity::dv_ordinal::DvOrdinal {
normal_status: __s0.flatten(),
normal_range: __s1.flatten(),
other_reference_ranges: __s2,
symbol: __s3
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("symbol"))?,
value: __s4
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "DV_ORDINAL", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::text::dv_paragraph::DvParagraph {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_PARAGRAPH", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_PARAGRAPH")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "items", &self.items)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::data_types::text::dv_paragraph::DvParagraph {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["items"];
enum __Field {
__Type,
__F0,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"items" => ::core::result::Result::Ok(__Field::__F0),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"DV_PARAGRAPH",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::text::dv_paragraph::DvParagraph;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_PARAGRAPH` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_PARAGRAPH"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("items"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::data_types::text::dv_paragraph::DvParagraph {
items: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("items"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"DV_PARAGRAPH",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::encapsulated::dv_parsable::DvParsable {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.charset.is_some() {
__n += 1;
}
if self.language.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_PARSABLE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_PARSABLE")?;
if let Some(__v) = &self.charset {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "charset", __v)?;
}
if let Some(__v) = &self.language {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "language", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "formalism", &self.formalism)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::data_types::encapsulated::dv_parsable::DvParsable
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["charset", "formalism", "language", "value"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"charset" => ::core::result::Result::Ok(__Field::__F0),
"language" => ::core::result::Result::Ok(__Field::__F1),
"value" => ::core::result::Result::Ok(__Field::__F2),
"formalism" => ::core::result::Result::Ok(__Field::__F3),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"DV_PARSABLE",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::encapsulated::dv_parsable::DvParsable;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_PARSABLE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_PARSABLE"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("charset"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("language"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("formalism"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::data_types::encapsulated::dv_parsable::DvParsable {
charset: __s0.flatten(),
language: __s1.flatten(),
value: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
formalism: __s3
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("formalism"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"DV_PARSABLE",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::time_specification::dv_periodic_time_specification::DvPeriodicTimeSpecification {
fn serialize<__S: ::serde::Serializer>(&self, __serializer: __S) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_PERIODIC_TIME_SPECIFICATION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_PERIODIC_TIME_SPECIFICATION")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::data_types::time_specification::dv_periodic_time_specification::DvPeriodicTimeSpecification {
fn deserialize<__D: ::serde::Deserializer<'de>>(__deserializer: __D) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["value"];
enum __Field { __Type, __F0, }
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(__deserializer: __D) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(self, __v: &str) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"value" => ::core::result::Result::Ok(__Field::__F0),
_ => ::core::result::Result::Err(::openehr_base::serde_support::unknown_field(__v, "DV_PERIODIC_TIME_SPECIFICATION", __FIELDS)),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::time_specification::dv_periodic_time_specification::DvPeriodicTimeSpecification;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_PERIODIC_TIME_SPECIFICATION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(self, mut __map: __A) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type { return ::core::result::Result::Err(::serde::de::Error::duplicate_field("_type")); }
__seen_type = true;
::serde::de::MapAccess::next_value_seed(&mut __map, ::openehr_base::serde_support::ExpectedType("DV_PERIODIC_TIME_SPECIFICATION"))?;
}
__Field::__F0 => {
if __s0.is_some() { return ::core::result::Result::Err(::serde::de::Error::duplicate_field("value")); }
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::data_types::time_specification::dv_periodic_time_specification::DvPeriodicTimeSpecification {
value: __s0.flatten().ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "DV_PERIODIC_TIME_SPECIFICATION", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::quantity::dv_proportion::DvProportion {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.normal_status.is_some() {
__n += 1;
}
if self.normal_range.is_some() {
__n += 1;
}
if self
.other_reference_ranges
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.magnitude_status.is_some() {
__n += 1;
}
if self.accuracy.is_some() {
__n += 1;
}
if self.accuracy_is_percent.is_some() {
__n += 1;
}
if self.precision.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_PROPORTION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_PROPORTION")?;
if let Some(__v) = &self.normal_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_status", __v)?;
}
if let Some(__v) = &self.normal_range {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_range", __v)?;
}
if let Some(__v) = &self.other_reference_ranges
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"other_reference_ranges",
__v,
)?;
}
if let Some(__v) = &self.magnitude_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "magnitude_status", __v)?;
}
if let Some(__v) = &self.accuracy {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "accuracy", __v)?;
}
if let Some(__v) = &self.accuracy_is_percent {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "accuracy_is_percent", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "numerator", &self.numerator)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"denominator",
&self.denominator,
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "type", &self.r#type)?;
if let Some(__v) = &self.precision {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "precision", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::data_types::quantity::dv_proportion::DvProportion
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"accuracy",
"accuracy_is_percent",
"denominator",
"magnitude_status",
"normal_range",
"normal_status",
"numerator",
"other_reference_ranges",
"precision",
"type",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"normal_status" => ::core::result::Result::Ok(__Field::__F0),
"normal_range" => ::core::result::Result::Ok(__Field::__F1),
"other_reference_ranges" => ::core::result::Result::Ok(__Field::__F2),
"magnitude_status" => ::core::result::Result::Ok(__Field::__F3),
"accuracy" => ::core::result::Result::Ok(__Field::__F4),
"accuracy_is_percent" => ::core::result::Result::Ok(__Field::__F5),
"numerator" => ::core::result::Result::Ok(__Field::__F6),
"denominator" => ::core::result::Result::Ok(__Field::__F7),
"type" => ::core::result::Result::Ok(__Field::__F8),
"precision" => ::core::result::Result::Ok(__Field::__F9),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"DV_PROPORTION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::quantity::dv_proportion::DvProportion;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_PROPORTION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<_> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_PROPORTION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_status"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_range"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_reference_ranges"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("magnitude_status"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("accuracy"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("accuracy_is_percent"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("numerator"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("denominator"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("type"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("precision"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::data_types::quantity::dv_proportion::DvProportion {
normal_status: __s0.flatten(),
normal_range: __s1.flatten(),
other_reference_ranges: __s2,
magnitude_status: __s3.flatten(),
accuracy: __s4.flatten(),
accuracy_is_percent: __s5.flatten(),
numerator: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("numerator"))?,
denominator: __s7
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("denominator"))?,
r#type: __s8
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("type"))?,
precision: __s9.flatten(),
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"DV_PROPORTION",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::quantity::dv_quantified::DvQuantified {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::data_types::quantity::dv_quantified::DvQuantified::DvCount(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::quantity::dv_quantified::DvQuantified::DvDate(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::quantity::dv_quantified::DvQuantified::DvDateTime(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::quantity::dv_quantified::DvQuantified::DvDuration(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::quantity::dv_quantified::DvQuantified::DvProportion(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::quantity::dv_quantified::DvQuantified::DvQuantity(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::quantity::dv_quantified::DvQuantified::DvTime(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::data_types::quantity::dv_quantified::DvQuantified
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &[
"DV_COUNT",
"DV_DATE",
"DV_DATE_TIME",
"DV_DURATION",
"DV_PROPORTION",
"DV_QUANTITY",
"DV_TIME",
];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::quantity::dv_quantified::DvQuantified;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_QUANTIFIED` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_COUNT" => ::core::result::Result::Ok(crate::v1_1::data_types::quantity::dv_quantified::DvQuantified::DvCount(::serde::Deserialize::deserialize(__rest)?)),
"DV_DATE" => ::core::result::Result::Ok(crate::v1_1::data_types::quantity::dv_quantified::DvQuantified::DvDate(::serde::Deserialize::deserialize(__rest)?)),
"DV_DATE_TIME" => ::core::result::Result::Ok(crate::v1_1::data_types::quantity::dv_quantified::DvQuantified::DvDateTime(::serde::Deserialize::deserialize(__rest)?)),
"DV_DURATION" => ::core::result::Result::Ok(crate::v1_1::data_types::quantity::dv_quantified::DvQuantified::DvDuration(::serde::Deserialize::deserialize(__rest)?)),
"DV_PROPORTION" => ::core::result::Result::Ok(crate::v1_1::data_types::quantity::dv_quantified::DvQuantified::DvProportion(::serde::Deserialize::deserialize(__rest)?)),
"DV_QUANTITY" => ::core::result::Result::Ok(crate::v1_1::data_types::quantity::dv_quantified::DvQuantified::DvQuantity(::serde::Deserialize::deserialize(__rest)?)),
"DV_TIME" => ::core::result::Result::Ok(crate::v1_1::data_types::quantity::dv_quantified::DvQuantified::DvTime(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("DV_QUANTIFIED", __other, "DV_COUNT, DV_DATE, DV_DATE_TIME, DV_DURATION, DV_PROPORTION, DV_QUANTITY, DV_TIME")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"DV_QUANTIFIED",
&__other,
"DV_COUNT, DV_DATE, DV_DATE_TIME, DV_DURATION, DV_PROPORTION, DV_QUANTITY, DV_TIME",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"DV_QUANTIFIED",
"DV_COUNT, DV_DATE, DV_DATE_TIME, DV_DURATION, DV_PROPORTION, DV_QUANTITY, DV_TIME",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::quantity::dv_quantity::DvQuantity {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.normal_status.is_some() {
__n += 1;
}
if self.normal_range.is_some() {
__n += 1;
}
if self
.other_reference_ranges
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.magnitude_status.is_some() {
__n += 1;
}
if self.accuracy.is_some() {
__n += 1;
}
if self.accuracy_is_percent.is_some() {
__n += 1;
}
if self.precision.is_some() {
__n += 1;
}
if self.units_system.is_some() {
__n += 1;
}
if self.units_display_name.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_QUANTITY", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_QUANTITY")?;
if let Some(__v) = &self.normal_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_status", __v)?;
}
if let Some(__v) = &self.normal_range {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_range", __v)?;
}
if let Some(__v) = &self.other_reference_ranges
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"other_reference_ranges",
__v,
)?;
}
if let Some(__v) = &self.magnitude_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "magnitude_status", __v)?;
}
if let Some(__v) = &self.accuracy {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "accuracy", __v)?;
}
if let Some(__v) = &self.accuracy_is_percent {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "accuracy_is_percent", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "magnitude", &self.magnitude)?;
if let Some(__v) = &self.precision {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "precision", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "units", &self.units)?;
if let Some(__v) = &self.units_system {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "units_system", __v)?;
}
if let Some(__v) = &self.units_display_name {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "units_display_name", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::data_types::quantity::dv_quantity::DvQuantity {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"accuracy",
"accuracy_is_percent",
"magnitude",
"magnitude_status",
"normal_range",
"normal_status",
"other_reference_ranges",
"precision",
"units",
"units_display_name",
"units_system",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"normal_status" => ::core::result::Result::Ok(__Field::__F0),
"normal_range" => ::core::result::Result::Ok(__Field::__F1),
"other_reference_ranges" => ::core::result::Result::Ok(__Field::__F2),
"magnitude_status" => ::core::result::Result::Ok(__Field::__F3),
"accuracy" => ::core::result::Result::Ok(__Field::__F4),
"accuracy_is_percent" => ::core::result::Result::Ok(__Field::__F5),
"magnitude" => ::core::result::Result::Ok(__Field::__F6),
"precision" => ::core::result::Result::Ok(__Field::__F7),
"units" => ::core::result::Result::Ok(__Field::__F8),
"units_system" => ::core::result::Result::Ok(__Field::__F9),
"units_display_name" => ::core::result::Result::Ok(__Field::__F10),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"DV_QUANTITY",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::quantity::dv_quantity::DvQuantity;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_QUANTITY` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<_> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s10: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_QUANTITY"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_status"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_range"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_reference_ranges"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("magnitude_status"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("accuracy"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("accuracy_is_percent"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("magnitude"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("precision"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("units"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("units_system"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("units_display_name"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::data_types::quantity::dv_quantity::DvQuantity {
normal_status: __s0.flatten(),
normal_range: __s1.flatten(),
other_reference_ranges: __s2,
magnitude_status: __s3.flatten(),
accuracy: __s4.flatten(),
accuracy_is_percent: __s5.flatten(),
magnitude: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("magnitude"))?,
precision: __s7.flatten(),
units: __s8
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("units"))?,
units_system: __s9.flatten(),
units_display_name: __s10.flatten(),
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"DV_QUANTITY",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::quantity::dv_scale::DvScale {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.normal_status.is_some() {
__n += 1;
}
if self.normal_range.is_some() {
__n += 1;
}
if self
.other_reference_ranges
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_SCALE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_SCALE")?;
if let Some(__v) = &self.normal_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_status", __v)?;
}
if let Some(__v) = &self.normal_range {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_range", __v)?;
}
if let Some(__v) = &self.other_reference_ranges
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"other_reference_ranges",
__v,
)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "symbol", &self.symbol)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::data_types::quantity::dv_scale::DvScale {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"normal_range",
"normal_status",
"other_reference_ranges",
"symbol",
"value",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"normal_status" => ::core::result::Result::Ok(__Field::__F0),
"normal_range" => ::core::result::Result::Ok(__Field::__F1),
"other_reference_ranges" => ::core::result::Result::Ok(__Field::__F2),
"symbol" => ::core::result::Result::Ok(__Field::__F3),
"value" => ::core::result::Result::Ok(__Field::__F4),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "DV_SCALE", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::quantity::dv_scale::DvScale;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_SCALE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<_> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_SCALE"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_status"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_range"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_reference_ranges"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("symbol"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::data_types::quantity::dv_scale::DvScale {
normal_status: __s0.flatten(),
normal_range: __s1.flatten(),
other_reference_ranges: __s2,
symbol: __s3
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("symbol"))?,
value: __s4
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "DV_SCALE", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::basic::dv_state::DvState {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_STATE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_STATE")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"is_terminal",
&self.is_terminal,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::data_types::basic::dv_state::DvState {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["is_terminal", "value"];
enum __Field {
__Type,
__F0,
__F1,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"value" => ::core::result::Result::Ok(__Field::__F0),
"is_terminal" => ::core::result::Result::Ok(__Field::__F1),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "DV_STATE", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::basic::dv_state::DvState;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_STATE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_STATE"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("is_terminal"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::data_types::basic::dv_state::DvState {
value: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
is_terminal: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("is_terminal"))?,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "DV_STATE", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::quantity::date_time::dv_temporal::DvTemporal {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::data_types::quantity::date_time::dv_temporal::DvTemporal::DvDate(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::quantity::date_time::dv_temporal::DvTemporal::DvDateTime(
__x,
) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_1::data_types::quantity::date_time::dv_temporal::DvTemporal::DvTime(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::data_types::quantity::date_time::dv_temporal::DvTemporal
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["DV_DATE", "DV_DATE_TIME", "DV_TIME"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::quantity::date_time::dv_temporal::DvTemporal;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_TEMPORAL` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_DATE" => ::core::result::Result::Ok(crate::v1_1::data_types::quantity::date_time::dv_temporal::DvTemporal::DvDate(::serde::Deserialize::deserialize(__rest)?)),
"DV_DATE_TIME" => ::core::result::Result::Ok(crate::v1_1::data_types::quantity::date_time::dv_temporal::DvTemporal::DvDateTime(::serde::Deserialize::deserialize(__rest)?)),
"DV_TIME" => ::core::result::Result::Ok(crate::v1_1::data_types::quantity::date_time::dv_temporal::DvTemporal::DvTime(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("DV_TEMPORAL", __other, "DV_DATE, DV_DATE_TIME, DV_TIME")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"DV_TEMPORAL",
&__other,
"DV_DATE, DV_DATE_TIME, DV_TIME",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"DV_TEMPORAL",
"DV_DATE, DV_DATE_TIME, DV_TIME",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::text::dv_text::DvTextData {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self.hyperlink.is_some() {
__n += 1;
}
if self.formatting.is_some() {
__n += 1;
}
if self.mappings.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.language.is_some() {
__n += 1;
}
if self.encoding.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_TEXT", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_TEXT")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
if let Some(__v) = &self.hyperlink {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "hyperlink", __v)?;
}
if let Some(__v) = &self.formatting {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "formatting", __v)?;
}
if let Some(__v) = &self.mappings
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "mappings", __v)?;
}
if let Some(__v) = &self.language {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "language", __v)?;
}
if let Some(__v) = &self.encoding {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "encoding", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::data_types::text::dv_text::DvTextData {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"encoding",
"formatting",
"hyperlink",
"language",
"mappings",
"value",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"value" => ::core::result::Result::Ok(__Field::__F0),
"hyperlink" => ::core::result::Result::Ok(__Field::__F1),
"formatting" => ::core::result::Result::Ok(__Field::__F2),
"mappings" => ::core::result::Result::Ok(__Field::__F3),
"language" => ::core::result::Result::Ok(__Field::__F4),
"encoding" => ::core::result::Result::Ok(__Field::__F5),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "DV_TEXT", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::text::dv_text::DvTextData;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_TEXT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_TEXT"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("hyperlink"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("formatting"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("mappings"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("language"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("encoding"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::data_types::text::dv_text::DvTextData {
value: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
hyperlink: __s1.flatten(),
formatting: __s2.flatten(),
mappings: __s3,
language: __s4.flatten(),
encoding: __s5.flatten(),
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "DV_TEXT", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::text::dv_text::DvText {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::data_types::text::dv_text::DvText::DvCodedText(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::text::dv_text::DvText::DvText(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::data_types::text::dv_text::DvText {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["DV_CODED_TEXT", "DV_TEXT"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::text::dv_text::DvText;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_TEXT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_CODED_TEXT" => ::core::result::Result::Ok(
crate::v1_1::data_types::text::dv_text::DvText::DvCodedText(
::serde::Deserialize::deserialize(__rest)?,
),
),
"DV_TEXT" => ::core::result::Result::Ok(
crate::v1_1::data_types::text::dv_text::DvText::DvText(
::serde::Deserialize::deserialize(__rest)?,
),
),
__other => ::core::result::Result::Err(
::openehr_base::serde_support::unexpected_type(
"DV_TEXT",
__other,
"DV_CODED_TEXT, DV_TEXT",
),
),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"DV_TEXT",
&__other,
"DV_CODED_TEXT, DV_TEXT",
))
}
None => {
let __rest =
::openehr_base::serde_support::TaggedRest::new(None, __buffered, __map);
::core::result::Result::Ok(
crate::v1_1::data_types::text::dv_text::DvText::DvText(
::serde::Deserialize::deserialize(__rest)?,
),
)
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::quantity::date_time::dv_time::DvTime {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self.normal_status.is_some() {
__n += 1;
}
if self.normal_range.is_some() {
__n += 1;
}
if self
.other_reference_ranges
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.magnitude_status.is_some() {
__n += 1;
}
if self.accuracy.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_TIME", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_TIME")?;
if let Some(__v) = &self.normal_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_status", __v)?;
}
if let Some(__v) = &self.normal_range {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_range", __v)?;
}
if let Some(__v) = &self.other_reference_ranges
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"other_reference_ranges",
__v,
)?;
}
if let Some(__v) = &self.magnitude_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "magnitude_status", __v)?;
}
if let Some(__v) = &self.accuracy {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "accuracy", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::data_types::quantity::date_time::dv_time::DvTime
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"accuracy",
"magnitude_status",
"normal_range",
"normal_status",
"other_reference_ranges",
"value",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"normal_status" => ::core::result::Result::Ok(__Field::__F0),
"normal_range" => ::core::result::Result::Ok(__Field::__F1),
"other_reference_ranges" => ::core::result::Result::Ok(__Field::__F2),
"magnitude_status" => ::core::result::Result::Ok(__Field::__F3),
"accuracy" => ::core::result::Result::Ok(__Field::__F4),
"value" => ::core::result::Result::Ok(__Field::__F5),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "DV_TIME", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::quantity::date_time::dv_time::DvTime;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_TIME` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<_> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_TIME"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_status"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_range"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_reference_ranges"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("magnitude_status"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("accuracy"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::data_types::quantity::date_time::dv_time::DvTime {
normal_status: __s0.flatten(),
normal_range: __s1.flatten(),
other_reference_ranges: __s2,
magnitude_status: __s3.flatten(),
accuracy: __s4.flatten(),
value: __s5
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "DV_TIME", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize
for crate::v1_1::data_types::time_specification::dv_time_specification::DvTimeSpecification
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::data_types::time_specification::dv_time_specification::DvTimeSpecification::DvGeneralTimeSpecification(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_1::data_types::time_specification::dv_time_specification::DvTimeSpecification::DvPeriodicTimeSpecification(__x) => ::serde::Serialize::serialize(__x, __serializer),
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::data_types::time_specification::dv_time_specification::DvTimeSpecification
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &[
"DV_GENERAL_TIME_SPECIFICATION",
"DV_PERIODIC_TIME_SPECIFICATION",
];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::time_specification::dv_time_specification::DvTimeSpecification;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_TIME_SPECIFICATION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_GENERAL_TIME_SPECIFICATION" => ::core::result::Result::Ok(crate::v1_1::data_types::time_specification::dv_time_specification::DvTimeSpecification::DvGeneralTimeSpecification(::serde::Deserialize::deserialize(__rest)?)),
"DV_PERIODIC_TIME_SPECIFICATION" => ::core::result::Result::Ok(crate::v1_1::data_types::time_specification::dv_time_specification::DvTimeSpecification::DvPeriodicTimeSpecification(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("DV_TIME_SPECIFICATION", __other, "DV_GENERAL_TIME_SPECIFICATION, DV_PERIODIC_TIME_SPECIFICATION")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"DV_TIME_SPECIFICATION",
&__other,
"DV_GENERAL_TIME_SPECIFICATION, DV_PERIODIC_TIME_SPECIFICATION",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"DV_TIME_SPECIFICATION",
"DV_GENERAL_TIME_SPECIFICATION, DV_PERIODIC_TIME_SPECIFICATION",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::uri::dv_uri::DvUriData {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_URI", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_URI")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::data_types::uri::dv_uri::DvUriData {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["value"];
enum __Field {
__Type,
__F0,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"value" => ::core::result::Result::Ok(__Field::__F0),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "DV_URI", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::uri::dv_uri::DvUriData;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_URI` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_URI"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::data_types::uri::dv_uri::DvUriData {
value: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "DV_URI", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::uri::dv_uri::DvUri {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::data_types::uri::dv_uri::DvUri::DvEhrUri(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_types::uri::dv_uri::DvUri::DvUri(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::data_types::uri::dv_uri::DvUri {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["DV_EHR_URI", "DV_URI"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::uri::dv_uri::DvUri;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_URI` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_EHR_URI" => ::core::result::Result::Ok(
crate::v1_1::data_types::uri::dv_uri::DvUri::DvEhrUri(
::serde::Deserialize::deserialize(__rest)?,
),
),
"DV_URI" => ::core::result::Result::Ok(
crate::v1_1::data_types::uri::dv_uri::DvUri::DvUri(
::serde::Deserialize::deserialize(__rest)?,
),
),
__other => ::core::result::Result::Err(
::openehr_base::serde_support::unexpected_type(
"DV_URI",
__other,
"DV_EHR_URI, DV_URI",
),
),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"DV_URI",
&__other,
"DV_EHR_URI, DV_URI",
))
}
None => {
let __rest =
::openehr_base::serde_support::TaggedRest::new(None, __buffered, __map);
::core::result::Result::Ok(
crate::v1_1::data_types::uri::dv_uri::DvUri::DvUri(
::serde::Deserialize::deserialize(__rest)?,
),
)
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::ehr::ehr::Ehr {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 6usize;
if self
.contributions
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self
.compositions
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.directory.is_some() {
__n += 1;
}
if self.folders.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "EHR", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "EHR")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "system_id", &self.system_id)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "ehr_id", &self.ehr_id)?;
if let Some(__v) = &self.contributions
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "contributions", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "ehr_status", &self.ehr_status)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "ehr_access", &self.ehr_access)?;
if let Some(__v) = &self.compositions
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "compositions", __v)?;
}
if let Some(__v) = &self.directory {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "directory", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_created",
&self.time_created,
)?;
if let Some(__v) = &self.folders
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "folders", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::ehr::ehr::Ehr {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"compositions",
"contributions",
"directory",
"ehr_access",
"ehr_id",
"ehr_status",
"folders",
"system_id",
"time_created",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"system_id" => ::core::result::Result::Ok(__Field::__F0),
"ehr_id" => ::core::result::Result::Ok(__Field::__F1),
"contributions" => ::core::result::Result::Ok(__Field::__F2),
"ehr_status" => ::core::result::Result::Ok(__Field::__F3),
"ehr_access" => ::core::result::Result::Ok(__Field::__F4),
"compositions" => ::core::result::Result::Ok(__Field::__F5),
"directory" => ::core::result::Result::Ok(__Field::__F6),
"time_created" => ::core::result::Result::Ok(__Field::__F7),
"folders" => ::core::result::Result::Ok(__Field::__F8),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(__v, "EHR", __FIELDS),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::ehr::ehr::Ehr;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EHR` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<_> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<_> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("EHR"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("system_id"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("ehr_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("contributions"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("ehr_status"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("ehr_access"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("compositions"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("directory"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_created"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("folders"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::ehr::ehr::Ehr {
system_id: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("system_id"))?,
ehr_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("ehr_id"))?,
contributions: __s2,
ehr_status: __s3
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("ehr_status"))?,
ehr_access: __s4
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("ehr_access"))?,
compositions: __s5,
directory: __s6.flatten(),
time_created: __s7
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("time_created"))?,
folders: __s8,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "EHR", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::ehr::ehr_access::EhrAccess {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.settings.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "EHR_ACCESS", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "EHR_ACCESS")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
if let Some(__v) = &self.settings {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "settings", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::ehr::ehr_access::EhrAccess {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"feeder_audit",
"links",
"name",
"settings",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"settings" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EHR_ACCESS",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::ehr::ehr_access::EhrAccess;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EHR_ACCESS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("EHR_ACCESS"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("settings"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::ehr::ehr_access::EhrAccess {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
settings: __s6.flatten(),
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "EHR_ACCESS", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::ehr::ehr_status::EhrStatus {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 6usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.other_details.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "EHR_STATUS", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "EHR_STATUS")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "subject", &self.subject)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"is_queryable",
&self.is_queryable,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"is_modifiable",
&self.is_modifiable,
)?;
if let Some(__v) = &self.other_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "other_details", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::ehr::ehr_status::EhrStatus {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"feeder_audit",
"is_modifiable",
"is_queryable",
"links",
"name",
"other_details",
"subject",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"subject" => ::core::result::Result::Ok(__Field::__F6),
"is_queryable" => ::core::result::Result::Ok(__Field::__F7),
"is_modifiable" => ::core::result::Result::Ok(__Field::__F8),
"other_details" => ::core::result::Result::Ok(__Field::__F9),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EHR_STATUS",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::ehr::ehr_status::EhrStatus;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EHR_STATUS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("EHR_STATUS"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("subject"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("is_queryable"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("is_modifiable"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_details"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::ehr::ehr_status::EhrStatus {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
subject: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("subject"))?,
is_queryable: __s7
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("is_queryable"))?,
is_modifiable: __s8
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("is_modifiable"))?,
other_details: __s9.flatten(),
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "EHR_STATUS", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::data_structures::representation::element::Element {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.null_flavour.is_some() {
__n += 1;
}
if self.value.is_some() {
__n += 1;
}
if self.null_reason.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "ELEMENT", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ELEMENT")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
if let Some(__v) = &self.null_flavour {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "null_flavour", __v)?;
}
if let Some(__v) = &self.value {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", __v)?;
}
if let Some(__v) = &self.null_reason {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "null_reason", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::data_structures::representation::element::Element
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"feeder_audit",
"links",
"name",
"null_flavour",
"null_reason",
"uid",
"value",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"null_flavour" => ::core::result::Result::Ok(__Field::__F6),
"value" => ::core::result::Result::Ok(__Field::__F7),
"null_reason" => ::core::result::Result::Ok(__Field::__F8),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "ELEMENT", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_structures::representation::element::Element;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ELEMENT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ELEMENT"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("null_flavour"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("null_reason"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::data_structures::representation::element::Element {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
null_flavour: __s6.flatten(),
value: __s7.flatten(),
null_reason: __s8.flatten(),
},
)
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "ELEMENT", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::composition::content::entry::entry::Entry {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::composition::content::entry::entry::Entry::Action(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::composition::content::entry::entry::Entry::AdminEntry(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::composition::content::entry::entry::Entry::Evaluation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::composition::content::entry::entry::Entry::Instruction(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::composition::content::entry::entry::Entry::Observation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::composition::content::entry::entry::Entry {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &[
"ACTION",
"ADMIN_ENTRY",
"EVALUATION",
"INSTRUCTION",
"OBSERVATION",
];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::composition::content::entry::entry::Entry;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ENTRY` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"ACTION" => ::core::result::Result::Ok(
crate::v1_1::composition::content::entry::entry::Entry::Action(
::serde::Deserialize::deserialize(__rest)?,
),
),
"ADMIN_ENTRY" => ::core::result::Result::Ok(
crate::v1_1::composition::content::entry::entry::Entry::AdminEntry(
::serde::Deserialize::deserialize(__rest)?,
),
),
"EVALUATION" => ::core::result::Result::Ok(
crate::v1_1::composition::content::entry::entry::Entry::Evaluation(
::serde::Deserialize::deserialize(__rest)?,
),
),
"INSTRUCTION" => ::core::result::Result::Ok(
crate::v1_1::composition::content::entry::entry::Entry::Instruction(
::serde::Deserialize::deserialize(__rest)?,
),
),
"OBSERVATION" => ::core::result::Result::Ok(
crate::v1_1::composition::content::entry::entry::Entry::Observation(
::serde::Deserialize::deserialize(__rest)?,
),
),
__other => ::core::result::Result::Err(
::openehr_base::serde_support::unexpected_type(
"ENTRY",
__other,
"ACTION, ADMIN_ENTRY, EVALUATION, INSTRUCTION, OBSERVATION",
),
),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"ENTRY",
&__other,
"ACTION, ADMIN_ENTRY, EVALUATION, INSTRUCTION, OBSERVATION",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"ENTRY",
"ACTION, ADMIN_ENTRY, EVALUATION, INSTRUCTION, OBSERVATION",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::composition::content::entry::evaluation::Evaluation {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 7usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self
.other_participations
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.workflow_id.is_some() {
__n += 1;
}
if self.provider.is_some() {
__n += 1;
}
if self.protocol.is_some() {
__n += 1;
}
if self.guideline_id.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "EVALUATION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "EVALUATION")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "language", &self.language)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "encoding", &self.encoding)?;
if let Some(__v) = &self.other_participations
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "other_participations", __v)?;
}
if let Some(__v) = &self.workflow_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "workflow_id", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "subject", &self.subject)?;
if let Some(__v) = &self.provider {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "provider", __v)?;
}
if let Some(__v) = &self.protocol {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "protocol", __v)?;
}
if let Some(__v) = &self.guideline_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "guideline_id", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "data", &self.data)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::composition::content::entry::evaluation::Evaluation
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"data",
"encoding",
"feeder_audit",
"guideline_id",
"language",
"links",
"name",
"other_participations",
"protocol",
"provider",
"subject",
"uid",
"workflow_id",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
__F11,
__F12,
__F13,
__F14,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"language" => ::core::result::Result::Ok(__Field::__F6),
"encoding" => ::core::result::Result::Ok(__Field::__F7),
"other_participations" => ::core::result::Result::Ok(__Field::__F8),
"workflow_id" => ::core::result::Result::Ok(__Field::__F9),
"subject" => ::core::result::Result::Ok(__Field::__F10),
"provider" => ::core::result::Result::Ok(__Field::__F11),
"protocol" => ::core::result::Result::Ok(__Field::__F12),
"guideline_id" => ::core::result::Result::Ok(__Field::__F13),
"data" => ::core::result::Result::Ok(__Field::__F14),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EVALUATION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::composition::content::entry::evaluation::Evaluation;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EVALUATION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<_> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s10: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s11: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s12: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s13: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s14: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("EVALUATION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("language"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("encoding"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_participations"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("workflow_id"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("subject"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F11 => {
if __s11.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("provider"),
);
}
__s11 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F12 => {
if __s12.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("protocol"),
);
}
__s12 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F13 => {
if __s13.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("guideline_id"),
);
}
__s13 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F14 => {
if __s14.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("data"),
);
}
__s14 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::composition::content::entry::evaluation::Evaluation {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
language: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("language"))?,
encoding: __s7
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("encoding"))?,
other_participations: __s8,
workflow_id: __s9.flatten(),
subject: __s10
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("subject"))?,
provider: __s11.flatten(),
protocol: __s12.flatten(),
guideline_id: __s13.flatten(),
data: __s14
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("data"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "EVALUATION", __FIELDS, __Visitor)
}
}
impl<T: ::serde::Serialize> ::serde::Serialize
for crate::v1_1::data_structures::history::event::Event<T>
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::data_structures::history::event::Event::IntervalEvent(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_structures::history::event::Event::PointEvent(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::Deserialize<'de>
for crate::v1_1::data_structures::history::event::Event<T>
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["INTERVAL_EVENT", "POINT_EVENT"];
struct __Visitor<T>(::core::marker::PhantomData<(T,)>);
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::de::Visitor<'de> for __Visitor<T> {
type Value = crate::v1_1::data_structures::history::event::Event<T>;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EVENT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"INTERVAL_EVENT" => ::core::result::Result::Ok(
crate::v1_1::data_structures::history::event::Event::IntervalEvent(
::serde::Deserialize::deserialize(__rest)?,
),
),
"POINT_EVENT" => ::core::result::Result::Ok(
crate::v1_1::data_structures::history::event::Event::PointEvent(
::serde::Deserialize::deserialize(__rest)?,
),
),
__other => ::core::result::Result::Err(
::openehr_base::serde_support::unexpected_type(
"EVENT",
__other,
"INTERVAL_EVENT, POINT_EVENT",
),
),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"EVENT",
&__other,
"INTERVAL_EVENT, POINT_EVENT",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"EVENT",
"INTERVAL_EVENT, POINT_EVENT",
))
}
}
}
}
::serde::Deserializer::deserialize_map(
__deserializer,
__Visitor(::core::marker::PhantomData),
)
}
}
impl ::serde::Serialize for crate::v1_1::composition::event_context::EventContext {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.end_time.is_some() {
__n += 1;
}
if self.location.is_some() {
__n += 1;
}
if self.other_context.is_some() {
__n += 1;
}
if self.health_care_facility.is_some() {
__n += 1;
}
if self
.participations
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "EVENT_CONTEXT", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "EVENT_CONTEXT")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "start_time", &self.start_time)?;
if let Some(__v) = &self.end_time {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "end_time", __v)?;
}
if let Some(__v) = &self.location {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "location", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "setting", &self.setting)?;
if let Some(__v) = &self.other_context {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "other_context", __v)?;
}
if let Some(__v) = &self.health_care_facility {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "health_care_facility", __v)?;
}
if let Some(__v) = &self.participations
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "participations", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::composition::event_context::EventContext {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"end_time",
"health_care_facility",
"location",
"other_context",
"participations",
"setting",
"start_time",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"start_time" => ::core::result::Result::Ok(__Field::__F0),
"end_time" => ::core::result::Result::Ok(__Field::__F1),
"location" => ::core::result::Result::Ok(__Field::__F2),
"setting" => ::core::result::Result::Ok(__Field::__F3),
"other_context" => ::core::result::Result::Ok(__Field::__F4),
"health_care_facility" => ::core::result::Result::Ok(__Field::__F5),
"participations" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EVENT_CONTEXT",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::composition::event_context::EventContext;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EVENT_CONTEXT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("EVENT_CONTEXT"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("start_time"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("end_time"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("location"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("setting"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_context"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("health_care_facility"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("participations"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::composition::event_context::EventContext {
start_time: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("start_time"))?,
end_time: __s1.flatten(),
location: __s2.flatten(),
setting: __s3
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("setting"))?,
other_context: __s4.flatten(),
health_care_facility: __s5.flatten(),
participations: __s6,
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"EVENT_CONTEXT",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::ehr_extract::common::extract::Extract {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 6usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.chapters.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.specification.is_some() {
__n += 1;
}
if self.request_id.is_some() {
__n += 1;
}
if self
.participations
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "EXTRACT", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "EXTRACT")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
if let Some(__v) = &self.chapters
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "chapters", __v)?;
}
if let Some(__v) = &self.specification {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "specification", __v)?;
}
if let Some(__v) = &self.request_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "request_id", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_created",
&self.time_created,
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "system_id", &self.system_id)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"sequence_nr",
&self.sequence_nr,
)?;
if let Some(__v) = &self.participations
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "participations", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::ehr_extract::common::extract::Extract {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"chapters",
"feeder_audit",
"links",
"name",
"participations",
"request_id",
"sequence_nr",
"specification",
"system_id",
"time_created",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
__F11,
__F12,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"chapters" => ::core::result::Result::Ok(__Field::__F6),
"specification" => ::core::result::Result::Ok(__Field::__F7),
"request_id" => ::core::result::Result::Ok(__Field::__F8),
"time_created" => ::core::result::Result::Ok(__Field::__F9),
"system_id" => ::core::result::Result::Ok(__Field::__F10),
"sequence_nr" => ::core::result::Result::Ok(__Field::__F11),
"participations" => ::core::result::Result::Ok(__Field::__F12),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "EXTRACT", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::ehr_extract::common::extract::Extract;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s10: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s11: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s12: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("EXTRACT"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("chapters"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("specification"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("request_id"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_created"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("system_id"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F11 => {
if __s11.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("sequence_nr"),
);
}
__s11 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F12 => {
if __s12.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("participations"),
);
}
__s12 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::ehr_extract::common::extract::Extract {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
chapters: __s6,
specification: __s7.flatten(),
request_id: __s8.flatten(),
time_created: __s9
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("time_created"))?,
system_id: __s10
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("system_id"))?,
sequence_nr: __s11
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("sequence_nr"))?,
participations: __s12,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "EXTRACT", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize
for crate::v1_1::ehr_extract::common::extract_action_request::ExtractActionRequest
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 6usize;
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "EXTRACT_ACTION_REQUEST", __n)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"_type",
"EXTRACT_ACTION_REQUEST",
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "request_id", &self.request_id)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "action", &self.action)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::ehr_extract::common::extract_action_request::ExtractActionRequest
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"action",
"archetype_details",
"archetype_node_id",
"feeder_audit",
"links",
"name",
"request_id",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"request_id" => ::core::result::Result::Ok(__Field::__F6),
"action" => ::core::result::Result::Ok(__Field::__F7),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EXTRACT_ACTION_REQUEST",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value =
crate::v1_1::ehr_extract::common::extract_action_request::ExtractActionRequest;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT_ACTION_REQUEST` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType(
"EXTRACT_ACTION_REQUEST",
),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("request_id"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("action"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::ehr_extract::common::extract_action_request::ExtractActionRequest {
name: __s0.flatten().ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten().ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
request_id: __s6.flatten().ok_or_else(|| ::serde::de::Error::missing_field("request_id"))?,
action: __s7.flatten().ok_or_else(|| ::serde::de::Error::missing_field("action"))?,
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"EXTRACT_ACTION_REQUEST",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::ehr_extract::common::extract_chapter::ExtractChapterData {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.items.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "EXTRACT_CHAPTER", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "EXTRACT_CHAPTER")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
if let Some(__v) = &self.items
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "items", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::ehr_extract::common::extract_chapter::ExtractChapterData
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"feeder_audit",
"items",
"links",
"name",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"items" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EXTRACT_CHAPTER",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::ehr_extract::common::extract_chapter::ExtractChapterData;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT_CHAPTER` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("EXTRACT_CHAPTER"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("items"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::ehr_extract::common::extract_chapter::ExtractChapterData {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
items: __s6,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"EXTRACT_CHAPTER",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::ehr_extract::common::extract_chapter::ExtractChapter {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::ehr_extract::common::extract_chapter::ExtractChapter::ExtractEntityChapter(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_1::ehr_extract::common::extract_chapter::ExtractChapter::ExtractChapter(__x) => ::serde::Serialize::serialize(__x, __serializer),
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::ehr_extract::common::extract_chapter::ExtractChapter
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["EXTRACT_CHAPTER", "EXTRACT_ENTITY_CHAPTER"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::ehr_extract::common::extract_chapter::ExtractChapter;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT_CHAPTER` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"EXTRACT_CHAPTER" => ::core::result::Result::Ok(crate::v1_1::ehr_extract::common::extract_chapter::ExtractChapter::ExtractChapter(::serde::Deserialize::deserialize(__rest)?)),
"EXTRACT_ENTITY_CHAPTER" => ::core::result::Result::Ok(crate::v1_1::ehr_extract::common::extract_chapter::ExtractChapter::ExtractEntityChapter(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("EXTRACT_CHAPTER", __other, "EXTRACT_CHAPTER, EXTRACT_ENTITY_CHAPTER")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"EXTRACT_CHAPTER",
&__other,
"EXTRACT_CHAPTER, EXTRACT_ENTITY_CHAPTER",
))
}
None => {
let __rest =
::openehr_base::serde_support::TaggedRest::new(None, __buffered, __map);
::core::result::Result::Ok(crate::v1_1::ehr_extract::common::extract_chapter::ExtractChapter::ExtractChapter(::serde::Deserialize::deserialize(__rest)?))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize
for crate::v1_1::ehr_extract::common::extract_content_item::ExtractContentItem
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::ehr_extract::common::extract_content_item::ExtractContentItem::GenericContentItem(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_1::ehr_extract::common::extract_content_item::ExtractContentItem::OpenehrContentItem(__x) => ::serde::Serialize::serialize(__x, __serializer),
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::ehr_extract::common::extract_content_item::ExtractContentItem
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["GENERIC_CONTENT_ITEM", "OPENEHR_CONTENT_ITEM"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::ehr_extract::common::extract_content_item::ExtractContentItem;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT_CONTENT_ITEM` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"GENERIC_CONTENT_ITEM" => ::core::result::Result::Ok(crate::v1_1::ehr_extract::common::extract_content_item::ExtractContentItem::GenericContentItem(::serde::Deserialize::deserialize(__rest)?)),
"OPENEHR_CONTENT_ITEM" => ::core::result::Result::Ok(crate::v1_1::ehr_extract::common::extract_content_item::ExtractContentItem::OpenehrContentItem(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("EXTRACT_CONTENT_ITEM", __other, "GENERIC_CONTENT_ITEM, OPENEHR_CONTENT_ITEM")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"EXTRACT_CONTENT_ITEM",
&__other,
"GENERIC_CONTENT_ITEM, OPENEHR_CONTENT_ITEM",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"EXTRACT_CONTENT_ITEM",
"GENERIC_CONTENT_ITEM, OPENEHR_CONTENT_ITEM",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize
for crate::v1_1::ehr_extract::common::extract_entity_chapter::ExtractEntityChapter
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.items.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "EXTRACT_ENTITY_CHAPTER", __n)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"_type",
"EXTRACT_ENTITY_CHAPTER",
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
if let Some(__v) = &self.items
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "items", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"extract_id_key",
&self.extract_id_key,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::ehr_extract::common::extract_entity_chapter::ExtractEntityChapter
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"extract_id_key",
"feeder_audit",
"items",
"links",
"name",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"items" => ::core::result::Result::Ok(__Field::__F6),
"extract_id_key" => ::core::result::Result::Ok(__Field::__F7),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EXTRACT_ENTITY_CHAPTER",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value =
crate::v1_1::ehr_extract::common::extract_entity_chapter::ExtractEntityChapter;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT_ENTITY_CHAPTER` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType(
"EXTRACT_ENTITY_CHAPTER",
),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("items"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("extract_id_key"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::ehr_extract::common::extract_entity_chapter::ExtractEntityChapter {
name: __s0.flatten().ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
items: __s6,
extract_id_key: __s7.flatten().ok_or_else(|| ::serde::de::Error::missing_field("extract_id_key"))?,
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"EXTRACT_ENTITY_CHAPTER",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_1::ehr_extract::common::extract_entity_manifest::ExtractEntityManifest
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self.ehr_id.is_some() {
__n += 1;
}
if self.subject_id.is_some() {
__n += 1;
}
if self.other_ids.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.item_list.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "EXTRACT_ENTITY_MANIFEST", __n)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"_type",
"EXTRACT_ENTITY_MANIFEST",
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"extract_id_key",
&self.extract_id_key,
)?;
if let Some(__v) = &self.ehr_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "ehr_id", __v)?;
}
if let Some(__v) = &self.subject_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "subject_id", __v)?;
}
if let Some(__v) = &self.other_ids
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "other_ids", __v)?;
}
if let Some(__v) = &self.item_list
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "item_list", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::ehr_extract::common::extract_entity_manifest::ExtractEntityManifest
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"ehr_id",
"extract_id_key",
"item_list",
"other_ids",
"subject_id",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"extract_id_key" => ::core::result::Result::Ok(__Field::__F0),
"ehr_id" => ::core::result::Result::Ok(__Field::__F1),
"subject_id" => ::core::result::Result::Ok(__Field::__F2),
"other_ids" => ::core::result::Result::Ok(__Field::__F3),
"item_list" => ::core::result::Result::Ok(__Field::__F4),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EXTRACT_ENTITY_MANIFEST",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value =
crate::v1_1::ehr_extract::common::extract_entity_manifest::ExtractEntityManifest;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT_ENTITY_MANIFEST` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType(
"EXTRACT_ENTITY_MANIFEST",
),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("extract_id_key"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("ehr_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("subject_id"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_ids"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("item_list"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::ehr_extract::common::extract_entity_manifest::ExtractEntityManifest {
extract_id_key: __s0.flatten().ok_or_else(|| ::serde::de::Error::missing_field("extract_id_key"))?,
ehr_id: __s1.flatten(),
subject_id: __s2.flatten(),
other_ids: __s3,
item_list: __s4,
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"EXTRACT_ENTITY_MANIFEST",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::ehr_extract::common::extract_error::ExtractError {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self.request_id.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "EXTRACT_ERROR", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "EXTRACT_ERROR")?;
if let Some(__v) = &self.request_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "request_id", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "reason", &self.reason)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::ehr_extract::common::extract_error::ExtractError
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["reason", "request_id"];
enum __Field {
__Type,
__F0,
__F1,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"request_id" => ::core::result::Result::Ok(__Field::__F0),
"reason" => ::core::result::Result::Ok(__Field::__F1),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EXTRACT_ERROR",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::ehr_extract::common::extract_error::ExtractError;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT_ERROR` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("EXTRACT_ERROR"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("request_id"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("reason"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::ehr_extract::common::extract_error::ExtractError {
request_id: __s0.flatten(),
reason: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("reason"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"EXTRACT_ERROR",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::ehr_extract::common::extract_folder::ExtractFolder {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.items.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "EXTRACT_FOLDER", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "EXTRACT_FOLDER")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
if let Some(__v) = &self.items
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "items", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::ehr_extract::common::extract_folder::ExtractFolder
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"feeder_audit",
"items",
"links",
"name",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"items" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EXTRACT_FOLDER",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::ehr_extract::common::extract_folder::ExtractFolder;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT_FOLDER` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("EXTRACT_FOLDER"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("items"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::ehr_extract::common::extract_folder::ExtractFolder {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
items: __s6,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"EXTRACT_FOLDER",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::ehr_extract::common::extract_item::ExtractItem {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::ehr_extract::common::extract_item::ExtractItem::ExtractFolder(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::ehr_extract::common::extract_item::ExtractItem::GenericContentItem(
__x,
) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_1::ehr_extract::common::extract_item::ExtractItem::OpenehrContentItem(
__x,
) => ::serde::Serialize::serialize(__x, __serializer),
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::ehr_extract::common::extract_item::ExtractItem
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &[
"EXTRACT_FOLDER",
"GENERIC_CONTENT_ITEM",
"OPENEHR_CONTENT_ITEM",
];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::ehr_extract::common::extract_item::ExtractItem;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT_ITEM` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"EXTRACT_FOLDER" => ::core::result::Result::Ok(crate::v1_1::ehr_extract::common::extract_item::ExtractItem::ExtractFolder(::serde::Deserialize::deserialize(__rest)?)),
"GENERIC_CONTENT_ITEM" => ::core::result::Result::Ok(crate::v1_1::ehr_extract::common::extract_item::ExtractItem::GenericContentItem(::serde::Deserialize::deserialize(__rest)?)),
"OPENEHR_CONTENT_ITEM" => ::core::result::Result::Ok(crate::v1_1::ehr_extract::common::extract_item::ExtractItem::OpenehrContentItem(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("EXTRACT_ITEM", __other, "EXTRACT_FOLDER, GENERIC_CONTENT_ITEM, OPENEHR_CONTENT_ITEM")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"EXTRACT_ITEM",
&__other,
"EXTRACT_FOLDER, GENERIC_CONTENT_ITEM, OPENEHR_CONTENT_ITEM",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"EXTRACT_ITEM",
"EXTRACT_FOLDER, GENERIC_CONTENT_ITEM, OPENEHR_CONTENT_ITEM",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::ehr_extract::common::extract_manifest::ExtractManifest {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "EXTRACT_MANIFEST", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "EXTRACT_MANIFEST")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "entities", &self.entities)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::ehr_extract::common::extract_manifest::ExtractManifest
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["entities"];
enum __Field {
__Type,
__F0,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"entities" => ::core::result::Result::Ok(__Field::__F0),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EXTRACT_MANIFEST",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::ehr_extract::common::extract_manifest::ExtractManifest;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT_MANIFEST` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("EXTRACT_MANIFEST"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("entities"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::ehr_extract::common::extract_manifest::ExtractManifest {
entities: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("entities"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"EXTRACT_MANIFEST",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_1::ehr_extract::common::extract_participation::ExtractParticipation
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.time.is_some() {
__n += 1;
}
if self.mode.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "EXTRACT_PARTICIPATION", __n)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"_type",
"EXTRACT_PARTICIPATION",
)?;
if let Some(__v) = &self.time {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "time", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "function", &self.function)?;
if let Some(__v) = &self.mode {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "mode", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "performer", &self.performer)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::ehr_extract::common::extract_participation::ExtractParticipation
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["function", "mode", "performer", "time"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"time" => ::core::result::Result::Ok(__Field::__F0),
"function" => ::core::result::Result::Ok(__Field::__F1),
"mode" => ::core::result::Result::Ok(__Field::__F2),
"performer" => ::core::result::Result::Ok(__Field::__F3),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EXTRACT_PARTICIPATION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value =
crate::v1_1::ehr_extract::common::extract_participation::ExtractParticipation;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT_PARTICIPATION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType(
"EXTRACT_PARTICIPATION",
),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("function"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("mode"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("performer"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::ehr_extract::common::extract_participation::ExtractParticipation {
time: __s0.flatten(),
function: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("function"))?,
mode: __s2.flatten(),
performer: __s3
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("performer"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"EXTRACT_PARTICIPATION",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::ehr_extract::common::extract_request::ExtractRequest {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 5usize;
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.update_spec.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "EXTRACT_REQUEST", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "EXTRACT_REQUEST")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"extract_spec",
&self.extract_spec,
)?;
if let Some(__v) = &self.update_spec {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "update_spec", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::ehr_extract::common::extract_request::ExtractRequest
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"extract_spec",
"feeder_audit",
"links",
"name",
"uid",
"update_spec",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"extract_spec" => ::core::result::Result::Ok(__Field::__F6),
"update_spec" => ::core::result::Result::Ok(__Field::__F7),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EXTRACT_REQUEST",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::ehr_extract::common::extract_request::ExtractRequest;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT_REQUEST` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("EXTRACT_REQUEST"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("extract_spec"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("update_spec"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::ehr_extract::common::extract_request::ExtractRequest {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
extract_spec: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("extract_spec"))?,
update_spec: __s7.flatten(),
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"EXTRACT_REQUEST",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::ehr_extract::common::extract_spec::ExtractSpec {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 6usize;
if self.version_spec.is_some() {
__n += 1;
}
if self.criteria.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.other_details.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "EXTRACT_SPEC", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "EXTRACT_SPEC")?;
if let Some(__v) = &self.version_spec {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "version_spec", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "manifest", &self.manifest)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"extract_type",
&self.extract_type,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"include_multimedia",
&self.include_multimedia,
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "priority", &self.priority)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "link_depth", &self.link_depth)?;
if let Some(__v) = &self.criteria
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "criteria", __v)?;
}
if let Some(__v) = &self.other_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "other_details", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::ehr_extract::common::extract_spec::ExtractSpec
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"criteria",
"extract_type",
"include_multimedia",
"link_depth",
"manifest",
"other_details",
"priority",
"version_spec",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"version_spec" => ::core::result::Result::Ok(__Field::__F0),
"manifest" => ::core::result::Result::Ok(__Field::__F1),
"extract_type" => ::core::result::Result::Ok(__Field::__F2),
"include_multimedia" => ::core::result::Result::Ok(__Field::__F3),
"priority" => ::core::result::Result::Ok(__Field::__F4),
"link_depth" => ::core::result::Result::Ok(__Field::__F5),
"criteria" => ::core::result::Result::Ok(__Field::__F6),
"other_details" => ::core::result::Result::Ok(__Field::__F7),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EXTRACT_SPEC",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::ehr_extract::common::extract_spec::ExtractSpec;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT_SPEC` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("EXTRACT_SPEC"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("version_spec"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("manifest"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("extract_type"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("include_multimedia"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("priority"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("link_depth"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("criteria"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_details"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::ehr_extract::common::extract_spec::ExtractSpec {
version_spec: __s0.flatten(),
manifest: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("manifest"))?,
extract_type: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("extract_type"))?,
include_multimedia: __s3.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("include_multimedia")
})?,
priority: __s4
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("priority"))?,
link_depth: __s5
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("link_depth"))?,
criteria: __s6,
other_details: __s7.flatten(),
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"EXTRACT_SPEC",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_1::ehr_extract::common::extract_update_spec::ExtractUpdateSpec
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.repeat_period.is_some() {
__n += 1;
}
if self
.trigger_events
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "EXTRACT_UPDATE_SPEC", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "EXTRACT_UPDATE_SPEC")?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"persist_in_server",
&self.persist_in_server,
)?;
if let Some(__v) = &self.repeat_period {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "repeat_period", __v)?;
}
if let Some(__v) = &self.trigger_events
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "trigger_events", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"update_method",
&self.update_method,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::ehr_extract::common::extract_update_spec::ExtractUpdateSpec
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"persist_in_server",
"repeat_period",
"trigger_events",
"update_method",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"persist_in_server" => ::core::result::Result::Ok(__Field::__F0),
"repeat_period" => ::core::result::Result::Ok(__Field::__F1),
"trigger_events" => ::core::result::Result::Ok(__Field::__F2),
"update_method" => ::core::result::Result::Ok(__Field::__F3),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EXTRACT_UPDATE_SPEC",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::ehr_extract::common::extract_update_spec::ExtractUpdateSpec;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT_UPDATE_SPEC` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<_> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("EXTRACT_UPDATE_SPEC"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("persist_in_server"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("repeat_period"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("trigger_events"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("update_method"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::ehr_extract::common::extract_update_spec::ExtractUpdateSpec {
persist_in_server: __s0.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("persist_in_server")
})?,
repeat_period: __s1.flatten(),
trigger_events: __s2,
update_method: __s3
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("update_method"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"EXTRACT_UPDATE_SPEC",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_1::ehr_extract::common::extract_version_spec::ExtractVersionSpec
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.commit_time_interval.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "EXTRACT_VERSION_SPEC", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "EXTRACT_VERSION_SPEC")?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"include_all_versions",
&self.include_all_versions,
)?;
if let Some(__v) = &self.commit_time_interval {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "commit_time_interval", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"include_revision_history",
&self.include_revision_history,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"include_data",
&self.include_data,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::ehr_extract::common::extract_version_spec::ExtractVersionSpec
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"commit_time_interval",
"include_all_versions",
"include_data",
"include_revision_history",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"include_all_versions" => ::core::result::Result::Ok(__Field::__F0),
"commit_time_interval" => ::core::result::Result::Ok(__Field::__F1),
"include_revision_history" => ::core::result::Result::Ok(__Field::__F2),
"include_data" => ::core::result::Result::Ok(__Field::__F3),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EXTRACT_VERSION_SPEC",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::ehr_extract::common::extract_version_spec::ExtractVersionSpec;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT_VERSION_SPEC` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("EXTRACT_VERSION_SPEC"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("include_all_versions"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("commit_time_interval"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("include_revision_history"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("include_data"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::ehr_extract::common::extract_version_spec::ExtractVersionSpec {
include_all_versions: __s0.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("include_all_versions")
})?,
commit_time_interval: __s1.flatten(),
include_revision_history: __s2.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("include_revision_history")
})?,
include_data: __s3
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("include_data"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"EXTRACT_VERSION_SPEC",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::common::archetyped::feeder_audit::FeederAudit {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self
.originating_system_item_ids
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self
.feeder_system_item_ids
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.original_content.is_some() {
__n += 1;
}
if self.feeder_system_audit.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "FEEDER_AUDIT", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "FEEDER_AUDIT")?;
if let Some(__v) = &self.originating_system_item_ids
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"originating_system_item_ids",
__v,
)?;
}
if let Some(__v) = &self.feeder_system_item_ids
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"feeder_system_item_ids",
__v,
)?;
}
if let Some(__v) = &self.original_content {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "original_content", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"originating_system_audit",
&self.originating_system_audit,
)?;
if let Some(__v) = &self.feeder_system_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_system_audit", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::common::archetyped::feeder_audit::FeederAudit {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"feeder_system_audit",
"feeder_system_item_ids",
"original_content",
"originating_system_audit",
"originating_system_item_ids",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"originating_system_item_ids" => {
::core::result::Result::Ok(__Field::__F0)
}
"feeder_system_item_ids" => ::core::result::Result::Ok(__Field::__F1),
"original_content" => ::core::result::Result::Ok(__Field::__F2),
"originating_system_audit" => ::core::result::Result::Ok(__Field::__F3),
"feeder_system_audit" => ::core::result::Result::Ok(__Field::__F4),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"FEEDER_AUDIT",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::common::archetyped::feeder_audit::FeederAudit;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `FEEDER_AUDIT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<_> = None;
let mut __s1: ::core::option::Option<_> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("FEEDER_AUDIT"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field(
"originating_system_item_ids",
),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_system_item_ids"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("original_content"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("originating_system_audit"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_system_audit"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::common::archetyped::feeder_audit::FeederAudit {
originating_system_item_ids: __s0,
feeder_system_item_ids: __s1,
original_content: __s2.flatten(),
originating_system_audit: __s3.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("originating_system_audit")
})?,
feeder_system_audit: __s4.flatten(),
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"FEEDER_AUDIT",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_1::common::archetyped::feeder_audit_details::FeederAuditDetails
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self.location.is_some() {
__n += 1;
}
if self.subject.is_some() {
__n += 1;
}
if self.provider.is_some() {
__n += 1;
}
if self.time.is_some() {
__n += 1;
}
if self.version_id.is_some() {
__n += 1;
}
if self.other_details.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "FEEDER_AUDIT_DETAILS", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "FEEDER_AUDIT_DETAILS")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "system_id", &self.system_id)?;
if let Some(__v) = &self.location {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "location", __v)?;
}
if let Some(__v) = &self.subject {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "subject", __v)?;
}
if let Some(__v) = &self.provider {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "provider", __v)?;
}
if let Some(__v) = &self.time {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "time", __v)?;
}
if let Some(__v) = &self.version_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "version_id", __v)?;
}
if let Some(__v) = &self.other_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "other_details", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::common::archetyped::feeder_audit_details::FeederAuditDetails
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"location",
"other_details",
"provider",
"subject",
"system_id",
"time",
"version_id",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"system_id" => ::core::result::Result::Ok(__Field::__F0),
"location" => ::core::result::Result::Ok(__Field::__F1),
"subject" => ::core::result::Result::Ok(__Field::__F2),
"provider" => ::core::result::Result::Ok(__Field::__F3),
"time" => ::core::result::Result::Ok(__Field::__F4),
"version_id" => ::core::result::Result::Ok(__Field::__F5),
"other_details" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"FEEDER_AUDIT_DETAILS",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::common::archetyped::feeder_audit_details::FeederAuditDetails;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `FEEDER_AUDIT_DETAILS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("FEEDER_AUDIT_DETAILS"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("system_id"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("location"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("subject"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("provider"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("version_id"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_details"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::common::archetyped::feeder_audit_details::FeederAuditDetails {
system_id: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("system_id"))?,
location: __s1.flatten(),
subject: __s2.flatten(),
provider: __s3.flatten(),
time: __s4.flatten(),
version_id: __s5.flatten(),
other_details: __s6.flatten(),
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"FEEDER_AUDIT_DETAILS",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::common::directory::folder::Folder {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.items.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.folders.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.details.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "FOLDER", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "FOLDER")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
if let Some(__v) = &self.items
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "items", __v)?;
}
if let Some(__v) = &self.folders
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "folders", __v)?;
}
if let Some(__v) = &self.details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "details", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::common::directory::folder::Folder {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"details",
"feeder_audit",
"folders",
"items",
"links",
"name",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"items" => ::core::result::Result::Ok(__Field::__F6),
"folders" => ::core::result::Result::Ok(__Field::__F7),
"details" => ::core::result::Result::Ok(__Field::__F8),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "FOLDER", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::common::directory::folder::Folder;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `FOLDER` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
let mut __s7: ::core::option::Option<_> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("FOLDER"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("items"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("folders"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("details"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::common::directory::folder::Folder {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
items: __s6,
folders: ::openehr_base::serde_support::refuse_empty_list(__s7, "folders")?,
details: __s8.flatten(),
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "FOLDER", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize
for crate::v1_1::ehr_extract::generic_extract::generic_content_item::GenericContentItem
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.is_changed.is_some() {
__n += 1;
}
if self.is_masked.is_some() {
__n += 1;
}
if self.item.is_some() {
__n += 1;
}
if self.item_type.is_some() {
__n += 1;
}
if self.item_type_version.is_some() {
__n += 1;
}
if self.author.is_some() {
__n += 1;
}
if self.creation_time.is_some() {
__n += 1;
}
if self.authoriser.is_some() {
__n += 1;
}
if self.authorisation_time.is_some() {
__n += 1;
}
if self.item_status.is_some() {
__n += 1;
}
if self.version_id.is_some() {
__n += 1;
}
if self.version_set_id.is_some() {
__n += 1;
}
if self.system_id.is_some() {
__n += 1;
}
if self.other_details.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "GENERIC_CONTENT_ITEM", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "GENERIC_CONTENT_ITEM")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "is_primary", &self.is_primary)?;
if let Some(__v) = &self.is_changed {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "is_changed", __v)?;
}
if let Some(__v) = &self.is_masked {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "is_masked", __v)?;
}
if let Some(__v) = &self.item {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "item", __v)?;
}
if let Some(__v) = &self.item_type {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "item_type", __v)?;
}
if let Some(__v) = &self.item_type_version {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "item_type_version", __v)?;
}
if let Some(__v) = &self.author {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "author", __v)?;
}
if let Some(__v) = &self.creation_time {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "creation_time", __v)?;
}
if let Some(__v) = &self.authoriser {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "authoriser", __v)?;
}
if let Some(__v) = &self.authorisation_time {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "authorisation_time", __v)?;
}
if let Some(__v) = &self.item_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "item_status", __v)?;
}
if let Some(__v) = &self.version_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "version_id", __v)?;
}
if let Some(__v) = &self.version_set_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "version_set_id", __v)?;
}
if let Some(__v) = &self.system_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "system_id", __v)?;
}
if let Some(__v) = &self.other_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "other_details", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::ehr_extract::generic_extract::generic_content_item::GenericContentItem
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"author",
"authorisation_time",
"authoriser",
"creation_time",
"feeder_audit",
"is_changed",
"is_masked",
"is_primary",
"item",
"item_status",
"item_type",
"item_type_version",
"links",
"name",
"other_details",
"system_id",
"uid",
"version_id",
"version_set_id",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
__F11,
__F12,
__F13,
__F14,
__F15,
__F16,
__F17,
__F18,
__F19,
__F20,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"is_primary" => ::core::result::Result::Ok(__Field::__F6),
"is_changed" => ::core::result::Result::Ok(__Field::__F7),
"is_masked" => ::core::result::Result::Ok(__Field::__F8),
"item" => ::core::result::Result::Ok(__Field::__F9),
"item_type" => ::core::result::Result::Ok(__Field::__F10),
"item_type_version" => ::core::result::Result::Ok(__Field::__F11),
"author" => ::core::result::Result::Ok(__Field::__F12),
"creation_time" => ::core::result::Result::Ok(__Field::__F13),
"authoriser" => ::core::result::Result::Ok(__Field::__F14),
"authorisation_time" => ::core::result::Result::Ok(__Field::__F15),
"item_status" => ::core::result::Result::Ok(__Field::__F16),
"version_id" => ::core::result::Result::Ok(__Field::__F17),
"version_set_id" => ::core::result::Result::Ok(__Field::__F18),
"system_id" => ::core::result::Result::Ok(__Field::__F19),
"other_details" => ::core::result::Result::Ok(__Field::__F20),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"GENERIC_CONTENT_ITEM",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value =
crate::v1_1::ehr_extract::generic_extract::generic_content_item::GenericContentItem;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `GENERIC_CONTENT_ITEM` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s10: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s11: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s12: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s13: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s14: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s15: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s16: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s17: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s18: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s19: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s20: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("GENERIC_CONTENT_ITEM"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("is_primary"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("is_changed"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("is_masked"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("item"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("item_type"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F11 => {
if __s11.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("item_type_version"),
);
}
__s11 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F12 => {
if __s12.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("author"),
);
}
__s12 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F13 => {
if __s13.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("creation_time"),
);
}
__s13 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F14 => {
if __s14.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("authoriser"),
);
}
__s14 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F15 => {
if __s15.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("authorisation_time"),
);
}
__s15 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F16 => {
if __s16.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("item_status"),
);
}
__s16 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F17 => {
if __s17.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("version_id"),
);
}
__s17 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F18 => {
if __s18.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("version_set_id"),
);
}
__s18 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F19 => {
if __s19.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("system_id"),
);
}
__s19 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F20 => {
if __s20.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_details"),
);
}
__s20 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::ehr_extract::generic_extract::generic_content_item::GenericContentItem {
name: __s0.flatten().ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
is_primary: __s6.flatten().ok_or_else(|| ::serde::de::Error::missing_field("is_primary"))?,
is_changed: __s7.flatten(),
is_masked: __s8.flatten(),
item: __s9.flatten(),
item_type: __s10.flatten(),
item_type_version: __s11.flatten(),
author: __s12.flatten(),
creation_time: __s13.flatten(),
authoriser: __s14.flatten(),
authorisation_time: __s15.flatten(),
item_status: __s16.flatten(),
version_id: __s17.flatten(),
version_set_id: __s18.flatten(),
system_id: __s19.flatten(),
other_details: __s20.flatten(),
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"GENERIC_CONTENT_ITEM",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::integration::generic_entry::GenericEntry {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "GENERIC_ENTRY", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "GENERIC_ENTRY")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "data", &self.data)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::integration::generic_entry::GenericEntry {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"data",
"feeder_audit",
"links",
"name",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"data" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"GENERIC_ENTRY",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::integration::generic_entry::GenericEntry;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `GENERIC_ENTRY` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("GENERIC_ENTRY"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("data"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::integration::generic_entry::GenericEntry {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
data: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("data"))?,
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"GENERIC_ENTRY",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::demographic::group::Group {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.contacts.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.details.is_some() {
__n += 1;
}
if self
.reverse_relationships
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self
.relationships
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.languages.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.roles.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "GROUP", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "GROUP")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "identities", &self.identities)?;
if let Some(__v) = &self.contacts
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "contacts", __v)?;
}
if let Some(__v) = &self.details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "details", __v)?;
}
if let Some(__v) = &self.reverse_relationships
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"reverse_relationships",
__v,
)?;
}
if let Some(__v) = &self.relationships
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "relationships", __v)?;
}
if let Some(__v) = &self.languages
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "languages", __v)?;
}
if let Some(__v) = &self.roles
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "roles", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::demographic::group::Group {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"contacts",
"details",
"feeder_audit",
"identities",
"languages",
"links",
"name",
"relationships",
"reverse_relationships",
"roles",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
__F11,
__F12,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"identities" => ::core::result::Result::Ok(__Field::__F6),
"contacts" => ::core::result::Result::Ok(__Field::__F7),
"details" => ::core::result::Result::Ok(__Field::__F8),
"reverse_relationships" => ::core::result::Result::Ok(__Field::__F9),
"relationships" => ::core::result::Result::Ok(__Field::__F10),
"languages" => ::core::result::Result::Ok(__Field::__F11),
"roles" => ::core::result::Result::Ok(__Field::__F12),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "GROUP", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::demographic::group::Group;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `GROUP` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<_> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<_> = None;
let mut __s10: ::core::option::Option<_> = None;
let mut __s11: ::core::option::Option<_> = None;
let mut __s12: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("GROUP"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("identities"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("contacts"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("details"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("reverse_relationships"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("relationships"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F11 => {
if __s11.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("languages"),
);
}
__s11 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F12 => {
if __s12.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("roles"),
);
}
__s12 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::demographic::group::Group {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
identities: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("identities"))?,
contacts: __s7,
details: __s8.flatten(),
reverse_relationships: __s9,
relationships: __s10,
languages: ::openehr_base::serde_support::refuse_empty_list(
__s11,
"languages",
)?,
roles: __s12,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "GROUP", __FIELDS, __Visitor)
}
}
impl<T: ::serde::Serialize> ::serde::Serialize
for crate::v1_1::data_structures::history::history::History<T>
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.period.is_some() {
__n += 1;
}
if self.duration.is_some() {
__n += 1;
}
if self.summary.is_some() {
__n += 1;
}
if self.events.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "HISTORY", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "HISTORY")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "origin", &self.origin)?;
if let Some(__v) = &self.period {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "period", __v)?;
}
if let Some(__v) = &self.duration {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "duration", __v)?;
}
if let Some(__v) = &self.summary {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "summary", __v)?;
}
if let Some(__v) = &self.events
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "events", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::Deserialize<'de>
for crate::v1_1::data_structures::history::history::History<T>
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"duration",
"events",
"feeder_audit",
"links",
"name",
"origin",
"period",
"summary",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"origin" => ::core::result::Result::Ok(__Field::__F6),
"period" => ::core::result::Result::Ok(__Field::__F7),
"duration" => ::core::result::Result::Ok(__Field::__F8),
"summary" => ::core::result::Result::Ok(__Field::__F9),
"events" => ::core::result::Result::Ok(__Field::__F10),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "HISTORY", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor<T>(::core::marker::PhantomData<(T,)>);
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::de::Visitor<'de> for __Visitor<T> {
type Value = crate::v1_1::data_structures::history::history::History<T>;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `HISTORY` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s10: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("HISTORY"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("origin"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("period"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("duration"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("summary"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("events"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::data_structures::history::history::History {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
origin: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("origin"))?,
period: __s7.flatten(),
duration: __s8.flatten(),
summary: __s9.flatten(),
events: ::openehr_base::serde_support::refuse_empty_list(__s10, "events")?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"HISTORY",
__FIELDS,
__Visitor(::core::marker::PhantomData),
)
}
}
impl<T: ::serde::Serialize> ::serde::Serialize
for crate::v1_1::common::change_control::imported_version::ImportedVersion<T>
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.signature.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "IMPORTED_VERSION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "IMPORTED_VERSION")?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"contribution",
&self.contribution,
)?;
if let Some(__v) = &self.signature {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "signature", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"commit_audit",
&self.commit_audit,
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "item", &self.item)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::Deserialize<'de>
for crate::v1_1::common::change_control::imported_version::ImportedVersion<T>
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["commit_audit", "contribution", "item", "signature"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"contribution" => ::core::result::Result::Ok(__Field::__F0),
"signature" => ::core::result::Result::Ok(__Field::__F1),
"commit_audit" => ::core::result::Result::Ok(__Field::__F2),
"item" => ::core::result::Result::Ok(__Field::__F3),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"IMPORTED_VERSION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor<T>(::core::marker::PhantomData<(T,)>);
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::de::Visitor<'de> for __Visitor<T> {
type Value = crate::v1_1::common::change_control::imported_version::ImportedVersion<T>;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `IMPORTED_VERSION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("IMPORTED_VERSION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("contribution"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("signature"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("commit_audit"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("item"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::common::change_control::imported_version::ImportedVersion {
contribution: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("contribution"))?,
signature: __s1.flatten(),
commit_audit: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("commit_audit"))?,
item: __s3
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("item"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"IMPORTED_VERSION",
__FIELDS,
__Visitor(::core::marker::PhantomData),
)
}
}
impl ::serde::Serialize for crate::v1_1::composition::content::entry::instruction::Instruction {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 7usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self
.other_participations
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.workflow_id.is_some() {
__n += 1;
}
if self.provider.is_some() {
__n += 1;
}
if self.protocol.is_some() {
__n += 1;
}
if self.guideline_id.is_some() {
__n += 1;
}
if self.expiry_time.is_some() {
__n += 1;
}
if self.wf_definition.is_some() {
__n += 1;
}
if self.activities.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "INSTRUCTION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "INSTRUCTION")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "language", &self.language)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "encoding", &self.encoding)?;
if let Some(__v) = &self.other_participations
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "other_participations", __v)?;
}
if let Some(__v) = &self.workflow_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "workflow_id", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "subject", &self.subject)?;
if let Some(__v) = &self.provider {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "provider", __v)?;
}
if let Some(__v) = &self.protocol {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "protocol", __v)?;
}
if let Some(__v) = &self.guideline_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "guideline_id", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "narrative", &self.narrative)?;
if let Some(__v) = &self.expiry_time {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "expiry_time", __v)?;
}
if let Some(__v) = &self.wf_definition {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "wf_definition", __v)?;
}
if let Some(__v) = &self.activities
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "activities", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::composition::content::entry::instruction::Instruction
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"activities",
"archetype_details",
"archetype_node_id",
"encoding",
"expiry_time",
"feeder_audit",
"guideline_id",
"language",
"links",
"name",
"narrative",
"other_participations",
"protocol",
"provider",
"subject",
"uid",
"wf_definition",
"workflow_id",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
__F11,
__F12,
__F13,
__F14,
__F15,
__F16,
__F17,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"language" => ::core::result::Result::Ok(__Field::__F6),
"encoding" => ::core::result::Result::Ok(__Field::__F7),
"other_participations" => ::core::result::Result::Ok(__Field::__F8),
"workflow_id" => ::core::result::Result::Ok(__Field::__F9),
"subject" => ::core::result::Result::Ok(__Field::__F10),
"provider" => ::core::result::Result::Ok(__Field::__F11),
"protocol" => ::core::result::Result::Ok(__Field::__F12),
"guideline_id" => ::core::result::Result::Ok(__Field::__F13),
"narrative" => ::core::result::Result::Ok(__Field::__F14),
"expiry_time" => ::core::result::Result::Ok(__Field::__F15),
"wf_definition" => ::core::result::Result::Ok(__Field::__F16),
"activities" => ::core::result::Result::Ok(__Field::__F17),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"INSTRUCTION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::composition::content::entry::instruction::Instruction;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `INSTRUCTION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<_> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s10: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s11: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s12: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s13: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s14: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s15: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s16: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s17: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("INSTRUCTION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("language"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("encoding"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_participations"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("workflow_id"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("subject"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F11 => {
if __s11.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("provider"),
);
}
__s11 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F12 => {
if __s12.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("protocol"),
);
}
__s12 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F13 => {
if __s13.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("guideline_id"),
);
}
__s13 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F14 => {
if __s14.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("narrative"),
);
}
__s14 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F15 => {
if __s15.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("expiry_time"),
);
}
__s15 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F16 => {
if __s16.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("wf_definition"),
);
}
__s16 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F17 => {
if __s17.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("activities"),
);
}
__s17 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::composition::content::entry::instruction::Instruction {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
language: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("language"))?,
encoding: __s7
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("encoding"))?,
other_participations: __s8,
workflow_id: __s9.flatten(),
subject: __s10
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("subject"))?,
provider: __s11.flatten(),
protocol: __s12.flatten(),
guideline_id: __s13.flatten(),
narrative: __s14
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("narrative"))?,
expiry_time: __s15.flatten(),
wf_definition: __s16.flatten(),
activities: __s17,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"INSTRUCTION",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_1::composition::content::entry::instruction_details::InstructionDetails
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.wf_details.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "INSTRUCTION_DETAILS", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "INSTRUCTION_DETAILS")?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"instruction_id",
&self.instruction_id,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"activity_id",
&self.activity_id,
)?;
if let Some(__v) = &self.wf_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "wf_details", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::composition::content::entry::instruction_details::InstructionDetails
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["activity_id", "instruction_id", "wf_details"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"instruction_id" => ::core::result::Result::Ok(__Field::__F0),
"activity_id" => ::core::result::Result::Ok(__Field::__F1),
"wf_details" => ::core::result::Result::Ok(__Field::__F2),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"INSTRUCTION_DETAILS",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value =
crate::v1_1::composition::content::entry::instruction_details::InstructionDetails;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `INSTRUCTION_DETAILS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("INSTRUCTION_DETAILS"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("instruction_id"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("activity_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("wf_details"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::composition::content::entry::instruction_details::InstructionDetails {
instruction_id: __s0.flatten().ok_or_else(|| ::serde::de::Error::missing_field("instruction_id"))?,
activity_id: __s1.flatten().ok_or_else(|| ::serde::de::Error::missing_field("activity_id"))?,
wf_details: __s2.flatten(),
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"INSTRUCTION_DETAILS",
__FIELDS,
__Visitor,
)
}
}
impl<T: ::serde::Serialize> ::serde::Serialize
for crate::v1_1::data_structures::history::interval_event::IntervalEvent<T>
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 7usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.state.is_some() {
__n += 1;
}
if self.sample_count.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "INTERVAL_EVENT", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "INTERVAL_EVENT")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "time", &self.time)?;
if let Some(__v) = &self.state {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "state", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "data", &self.data)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "width", &self.width)?;
if let Some(__v) = &self.sample_count {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "sample_count", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"math_function",
&self.math_function,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::Deserialize<'de>
for crate::v1_1::data_structures::history::interval_event::IntervalEvent<T>
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"data",
"feeder_audit",
"links",
"math_function",
"name",
"sample_count",
"state",
"time",
"uid",
"width",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
__F11,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"time" => ::core::result::Result::Ok(__Field::__F6),
"state" => ::core::result::Result::Ok(__Field::__F7),
"data" => ::core::result::Result::Ok(__Field::__F8),
"width" => ::core::result::Result::Ok(__Field::__F9),
"sample_count" => ::core::result::Result::Ok(__Field::__F10),
"math_function" => ::core::result::Result::Ok(__Field::__F11),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"INTERVAL_EVENT",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor<T>(::core::marker::PhantomData<(T,)>);
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::de::Visitor<'de> for __Visitor<T> {
type Value = crate::v1_1::data_structures::history::interval_event::IntervalEvent<T>;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `INTERVAL_EVENT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s10: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s11: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("INTERVAL_EVENT"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("state"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("data"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("width"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("sample_count"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F11 => {
if __s11.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("math_function"),
);
}
__s11 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::data_structures::history::interval_event::IntervalEvent {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
time: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("time"))?,
state: __s7.flatten(),
data: __s8
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("data"))?,
width: __s9
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("width"))?,
sample_count: __s10.flatten(),
math_function: __s11
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("math_function"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"INTERVAL_EVENT",
__FIELDS,
__Visitor(::core::marker::PhantomData),
)
}
}
impl ::serde::Serialize
for crate::v1_1::composition::content::entry::ism_transition::IsmTransition
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self.transition.is_some() {
__n += 1;
}
if self.careflow_step.is_some() {
__n += 1;
}
if self.reason.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "ISM_TRANSITION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ISM_TRANSITION")?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"current_state",
&self.current_state,
)?;
if let Some(__v) = &self.transition {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "transition", __v)?;
}
if let Some(__v) = &self.careflow_step {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "careflow_step", __v)?;
}
if let Some(__v) = &self.reason
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "reason", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::composition::content::entry::ism_transition::IsmTransition
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["careflow_step", "current_state", "reason", "transition"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"current_state" => ::core::result::Result::Ok(__Field::__F0),
"transition" => ::core::result::Result::Ok(__Field::__F1),
"careflow_step" => ::core::result::Result::Ok(__Field::__F2),
"reason" => ::core::result::Result::Ok(__Field::__F3),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"ISM_TRANSITION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::composition::content::entry::ism_transition::IsmTransition;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ISM_TRANSITION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ISM_TRANSITION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("current_state"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("transition"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("careflow_step"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("reason"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::composition::content::entry::ism_transition::IsmTransition {
current_state: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("current_state"))?,
transition: __s1.flatten(),
careflow_step: __s2.flatten(),
reason: __s3,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"ISM_TRANSITION",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::data_structures::representation::item::Item {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::data_structures::representation::item::Item::Cluster(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::data_structures::representation::item::Item::Element(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::data_structures::representation::item::Item {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["CLUSTER", "ELEMENT"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_structures::representation::item::Item;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ITEM` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"CLUSTER" => ::core::result::Result::Ok(
crate::v1_1::data_structures::representation::item::Item::Cluster(
::serde::Deserialize::deserialize(__rest)?,
),
),
"ELEMENT" => ::core::result::Result::Ok(
crate::v1_1::data_structures::representation::item::Item::Element(
::serde::Deserialize::deserialize(__rest)?,
),
),
__other => ::core::result::Result::Err(
::openehr_base::serde_support::unexpected_type(
"ITEM",
__other,
"CLUSTER, ELEMENT",
),
),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"ITEM",
&__other,
"CLUSTER, ELEMENT",
))
}
None => ::core::result::Result::Err(
::openehr_base::serde_support::missing_type("ITEM", "CLUSTER, ELEMENT"),
),
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::data_structures::item_structure::item_list::ItemList {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.items.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "ITEM_LIST", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ITEM_LIST")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
if let Some(__v) = &self.items
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "items", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::data_structures::item_structure::item_list::ItemList
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"feeder_audit",
"items",
"links",
"name",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"items" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"ITEM_LIST",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_structures::item_structure::item_list::ItemList;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ITEM_LIST` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ITEM_LIST"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("items"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::data_structures::item_structure::item_list::ItemList {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
items: __s6,
},
)
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "ITEM_LIST", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::data_structures::item_structure::item_single::ItemSingle {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "ITEM_SINGLE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ITEM_SINGLE")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "item", &self.item)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::data_structures::item_structure::item_single::ItemSingle
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"feeder_audit",
"item",
"links",
"name",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"item" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"ITEM_SINGLE",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_structures::item_structure::item_single::ItemSingle;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ITEM_SINGLE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ITEM_SINGLE"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("item"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::data_structures::item_structure::item_single::ItemSingle {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
item: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("item"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"ITEM_SINGLE",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_1::data_structures::item_structure::item_structure::ItemStructure
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::data_structures::item_structure::item_structure::ItemStructure::ItemList(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_1::data_structures::item_structure::item_structure::ItemStructure::ItemSingle(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_1::data_structures::item_structure::item_structure::ItemStructure::ItemTable(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_1::data_structures::item_structure::item_structure::ItemStructure::ItemTree(__x) => ::serde::Serialize::serialize(__x, __serializer),
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::data_structures::item_structure::item_structure::ItemStructure
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["ITEM_LIST", "ITEM_SINGLE", "ITEM_TABLE", "ITEM_TREE"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value =
crate::v1_1::data_structures::item_structure::item_structure::ItemStructure;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ITEM_STRUCTURE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"ITEM_LIST" => ::core::result::Result::Ok(crate::v1_1::data_structures::item_structure::item_structure::ItemStructure::ItemList(::serde::Deserialize::deserialize(__rest)?)),
"ITEM_SINGLE" => ::core::result::Result::Ok(crate::v1_1::data_structures::item_structure::item_structure::ItemStructure::ItemSingle(::serde::Deserialize::deserialize(__rest)?)),
"ITEM_TABLE" => ::core::result::Result::Ok(crate::v1_1::data_structures::item_structure::item_structure::ItemStructure::ItemTable(::serde::Deserialize::deserialize(__rest)?)),
"ITEM_TREE" => ::core::result::Result::Ok(crate::v1_1::data_structures::item_structure::item_structure::ItemStructure::ItemTree(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("ITEM_STRUCTURE", __other, "ITEM_LIST, ITEM_SINGLE, ITEM_TABLE, ITEM_TREE")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"ITEM_STRUCTURE",
&__other,
"ITEM_LIST, ITEM_SINGLE, ITEM_TABLE, ITEM_TREE",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"ITEM_STRUCTURE",
"ITEM_LIST, ITEM_SINGLE, ITEM_TABLE, ITEM_TREE",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::data_structures::item_structure::item_table::ItemTable {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.rows.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "ITEM_TABLE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ITEM_TABLE")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
if let Some(__v) = &self.rows
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "rows", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::data_structures::item_structure::item_table::ItemTable
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"feeder_audit",
"links",
"name",
"rows",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"rows" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"ITEM_TABLE",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_structures::item_structure::item_table::ItemTable;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ITEM_TABLE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ITEM_TABLE"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("rows"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::data_structures::item_structure::item_table::ItemTable {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
rows: __s6,
},
)
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "ITEM_TABLE", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::common::tags::item_tag::ItemTag {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.target_path.is_some() {
__n += 1;
}
if self.value.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "ITEM_TAG", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ITEM_TAG")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "target", &self.target)?;
if let Some(__v) = &self.target_path {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "target_path", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "key", &self.key)?;
if let Some(__v) = &self.value {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "owner_id", &self.owner_id)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::common::tags::item_tag::ItemTag {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["key", "owner_id", "target", "target_path", "value"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"target" => ::core::result::Result::Ok(__Field::__F0),
"target_path" => ::core::result::Result::Ok(__Field::__F1),
"key" => ::core::result::Result::Ok(__Field::__F2),
"value" => ::core::result::Result::Ok(__Field::__F3),
"owner_id" => ::core::result::Result::Ok(__Field::__F4),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "ITEM_TAG", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::common::tags::item_tag::ItemTag;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ITEM_TAG` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ITEM_TAG"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("target"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("target_path"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("key"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("owner_id"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
let __a0: String = __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("key"))?;
let __a1: Option<String> = __s3.flatten();
let __a2: openehr_base::v1_2::base_types::identification::uid_based_id::UidBasedId =
__s0.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("target"))?;
let __a3: Option<String> = __s1.flatten();
let __a4: openehr_base::v1_2::base_types::identification::object_ref::ObjectRef =
__s4.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("owner_id"))?;
let __built =
crate::v1_1::common::tags::item_tag::ItemTag::new(__a0, __a1, __a2, __a3, __a4);
__built.map_err(|__e| ::serde::de::Error::custom(::std::format!("ITEM_TAG: {__e}")))
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "ITEM_TAG", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::data_structures::item_structure::item_tree::ItemTree {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.items.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "ITEM_TREE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ITEM_TREE")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
if let Some(__v) = &self.items
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "items", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::data_structures::item_structure::item_tree::ItemTree
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"feeder_audit",
"items",
"links",
"name",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"items" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"ITEM_TREE",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_structures::item_structure::item_tree::ItemTree;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ITEM_TREE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ITEM_TREE"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("items"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::data_structures::item_structure::item_tree::ItemTree {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
items: __s6,
},
)
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "ITEM_TREE", __FIELDS, __Visitor)
}
}
impl<T: ::serde::Serialize> ::serde::Serialize
for crate::v1_1::foundation_types::interval::interval::Interval<T>
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::foundation_types::interval::interval::Interval::DvInterval(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::foundation_types::interval::interval::Interval::PointInterval(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::foundation_types::interval::interval::Interval::ProperInterval(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::Deserialize<'de>
for crate::v1_1::foundation_types::interval::interval::Interval<T>
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &[
"DV_INTERVAL",
"Multiplicity_interval",
"Point_interval",
"Proper_interval",
];
struct __Visitor<T>(::core::marker::PhantomData<(T,)>);
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::de::Visitor<'de> for __Visitor<T> {
type Value = crate::v1_1::foundation_types::interval::interval::Interval<T>;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `Interval` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_INTERVAL" => ::core::result::Result::Ok(crate::v1_1::foundation_types::interval::interval::Interval::DvInterval(::serde::Deserialize::deserialize(__rest)?)),
"Multiplicity_interval" => ::core::result::Result::Ok(crate::v1_1::foundation_types::interval::interval::Interval::ProperInterval(::serde::Deserialize::deserialize(__rest)?)),
"Point_interval" => ::core::result::Result::Ok(crate::v1_1::foundation_types::interval::interval::Interval::PointInterval(::serde::Deserialize::deserialize(__rest)?)),
"Proper_interval" => ::core::result::Result::Ok(crate::v1_1::foundation_types::interval::interval::Interval::ProperInterval(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("Interval", __other, "DV_INTERVAL, Multiplicity_interval, Point_interval, Proper_interval")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"Interval",
&__other,
"DV_INTERVAL, Multiplicity_interval, Point_interval, Proper_interval",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"Interval",
"DV_INTERVAL, Multiplicity_interval, Point_interval, Proper_interval",
))
}
}
}
}
::serde::Deserializer::deserialize_map(
__deserializer,
__Visitor(::core::marker::PhantomData),
)
}
}
impl ::serde::Serialize for crate::v1_1::foundation_types::time::iso8601_date::Iso8601DateData {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "Iso8601_date", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "Iso8601_date")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::foundation_types::time::iso8601_date::Iso8601DateData
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["value"];
enum __Field {
__Type,
__F0,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"value" => ::core::result::Result::Ok(__Field::__F0),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"Iso8601_date",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::foundation_types::time::iso8601_date::Iso8601DateData;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `Iso8601_date` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("Iso8601_date"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::foundation_types::time::iso8601_date::Iso8601DateData {
value: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"Iso8601_date",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::foundation_types::time::iso8601_date::Iso8601Date {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::foundation_types::time::iso8601_date::Iso8601Date::DvDate(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::foundation_types::time::iso8601_date::Iso8601Date::Iso8601Date(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::foundation_types::time::iso8601_date::Iso8601Date
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["DV_DATE", "Iso8601_date"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::foundation_types::time::iso8601_date::Iso8601Date;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `Iso8601_date` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_DATE" => ::core::result::Result::Ok(crate::v1_1::foundation_types::time::iso8601_date::Iso8601Date::DvDate(::serde::Deserialize::deserialize(__rest)?)),
"Iso8601_date" => ::core::result::Result::Ok(crate::v1_1::foundation_types::time::iso8601_date::Iso8601Date::Iso8601Date(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("Iso8601_date", __other, "DV_DATE, Iso8601_date")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"Iso8601_date",
&__other,
"DV_DATE, Iso8601_date",
))
}
None => {
let __rest =
::openehr_base::serde_support::TaggedRest::new(None, __buffered, __map);
::core::result::Result::Ok(crate::v1_1::foundation_types::time::iso8601_date::Iso8601Date::Iso8601Date(::serde::Deserialize::deserialize(__rest)?))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize
for crate::v1_1::foundation_types::time::iso8601_date_time::Iso8601DateTimeData
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "Iso8601_date_time", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "Iso8601_date_time")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::foundation_types::time::iso8601_date_time::Iso8601DateTimeData
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["value"];
enum __Field {
__Type,
__F0,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"value" => ::core::result::Result::Ok(__Field::__F0),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"Iso8601_date_time",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value =
crate::v1_1::foundation_types::time::iso8601_date_time::Iso8601DateTimeData;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `Iso8601_date_time` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("Iso8601_date_time"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::foundation_types::time::iso8601_date_time::Iso8601DateTimeData {
value: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"Iso8601_date_time",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_1::foundation_types::time::iso8601_date_time::Iso8601DateTime
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::foundation_types::time::iso8601_date_time::Iso8601DateTime::DvDateTime(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_1::foundation_types::time::iso8601_date_time::Iso8601DateTime::Iso8601DateTime(__x) => ::serde::Serialize::serialize(__x, __serializer),
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::foundation_types::time::iso8601_date_time::Iso8601DateTime
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["DV_DATE_TIME", "Iso8601_date_time"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::foundation_types::time::iso8601_date_time::Iso8601DateTime;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `Iso8601_date_time` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_DATE_TIME" => ::core::result::Result::Ok(crate::v1_1::foundation_types::time::iso8601_date_time::Iso8601DateTime::DvDateTime(::serde::Deserialize::deserialize(__rest)?)),
"Iso8601_date_time" => ::core::result::Result::Ok(crate::v1_1::foundation_types::time::iso8601_date_time::Iso8601DateTime::Iso8601DateTime(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("Iso8601_date_time", __other, "DV_DATE_TIME, Iso8601_date_time")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"Iso8601_date_time",
&__other,
"DV_DATE_TIME, Iso8601_date_time",
))
}
None => {
let __rest =
::openehr_base::serde_support::TaggedRest::new(None, __buffered, __map);
::core::result::Result::Ok(crate::v1_1::foundation_types::time::iso8601_date_time::Iso8601DateTime::Iso8601DateTime(::serde::Deserialize::deserialize(__rest)?))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize
for crate::v1_1::foundation_types::time::iso8601_duration::Iso8601DurationData
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "Iso8601_duration", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "Iso8601_duration")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::foundation_types::time::iso8601_duration::Iso8601DurationData
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["value"];
enum __Field {
__Type,
__F0,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"value" => ::core::result::Result::Ok(__Field::__F0),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"Iso8601_duration",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::foundation_types::time::iso8601_duration::Iso8601DurationData;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `Iso8601_duration` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("Iso8601_duration"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::foundation_types::time::iso8601_duration::Iso8601DurationData {
value: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"Iso8601_duration",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::foundation_types::time::iso8601_duration::Iso8601Duration {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::foundation_types::time::iso8601_duration::Iso8601Duration::DvDuration(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_1::foundation_types::time::iso8601_duration::Iso8601Duration::Iso8601Duration(__x) => ::serde::Serialize::serialize(__x, __serializer),
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::foundation_types::time::iso8601_duration::Iso8601Duration
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["DV_DURATION", "Iso8601_duration"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::foundation_types::time::iso8601_duration::Iso8601Duration;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `Iso8601_duration` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_DURATION" => ::core::result::Result::Ok(crate::v1_1::foundation_types::time::iso8601_duration::Iso8601Duration::DvDuration(::serde::Deserialize::deserialize(__rest)?)),
"Iso8601_duration" => ::core::result::Result::Ok(crate::v1_1::foundation_types::time::iso8601_duration::Iso8601Duration::Iso8601Duration(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("Iso8601_duration", __other, "DV_DURATION, Iso8601_duration")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"Iso8601_duration",
&__other,
"DV_DURATION, Iso8601_duration",
))
}
None => {
let __rest =
::openehr_base::serde_support::TaggedRest::new(None, __buffered, __map);
::core::result::Result::Ok(crate::v1_1::foundation_types::time::iso8601_duration::Iso8601Duration::Iso8601Duration(::serde::Deserialize::deserialize(__rest)?))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::foundation_types::time::iso8601_time::Iso8601TimeData {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "Iso8601_time", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "Iso8601_time")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::foundation_types::time::iso8601_time::Iso8601TimeData
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["value"];
enum __Field {
__Type,
__F0,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"value" => ::core::result::Result::Ok(__Field::__F0),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"Iso8601_time",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::foundation_types::time::iso8601_time::Iso8601TimeData;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `Iso8601_time` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("Iso8601_time"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::foundation_types::time::iso8601_time::Iso8601TimeData {
value: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"Iso8601_time",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::foundation_types::time::iso8601_time::Iso8601Time {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::foundation_types::time::iso8601_time::Iso8601Time::DvTime(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::foundation_types::time::iso8601_time::Iso8601Time::Iso8601Time(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::foundation_types::time::iso8601_time::Iso8601Time
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["DV_TIME", "Iso8601_time"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::foundation_types::time::iso8601_time::Iso8601Time;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `Iso8601_time` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_TIME" => ::core::result::Result::Ok(crate::v1_1::foundation_types::time::iso8601_time::Iso8601Time::DvTime(::serde::Deserialize::deserialize(__rest)?)),
"Iso8601_time" => ::core::result::Result::Ok(crate::v1_1::foundation_types::time::iso8601_time::Iso8601Time::Iso8601Time(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("Iso8601_time", __other, "DV_TIME, Iso8601_time")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"Iso8601_time",
&__other,
"DV_TIME, Iso8601_time",
))
}
None => {
let __rest =
::openehr_base::serde_support::TaggedRest::new(None, __buffered, __map);
::core::result::Result::Ok(crate::v1_1::foundation_types::time::iso8601_time::Iso8601Time::Iso8601Time(::serde::Deserialize::deserialize(__rest)?))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::foundation_types::time::iso8601_type::Iso8601Type {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::foundation_types::time::iso8601_type::Iso8601Type::Iso8601Date(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::foundation_types::time::iso8601_type::Iso8601Type::Iso8601DateTime(
__x,
) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_1::foundation_types::time::iso8601_type::Iso8601Type::Iso8601Duration(
__x,
) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_1::foundation_types::time::iso8601_type::Iso8601Type::Iso8601Time(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::foundation_types::time::iso8601_type::Iso8601Type::Iso8601Timezone(
__x,
) => ::serde::Serialize::serialize(__x, __serializer),
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::foundation_types::time::iso8601_type::Iso8601Type
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &[
"DV_DATE",
"DV_DATE_TIME",
"DV_DURATION",
"DV_TIME",
"Iso8601_date",
"Iso8601_date_time",
"Iso8601_duration",
"Iso8601_time",
"Iso8601_timezone",
];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::foundation_types::time::iso8601_type::Iso8601Type;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `Iso8601_type` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_DATE" => ::core::result::Result::Ok(crate::v1_1::foundation_types::time::iso8601_type::Iso8601Type::Iso8601Date(::serde::Deserialize::deserialize(__rest)?)),
"DV_DATE_TIME" => ::core::result::Result::Ok(crate::v1_1::foundation_types::time::iso8601_type::Iso8601Type::Iso8601DateTime(::serde::Deserialize::deserialize(__rest)?)),
"DV_DURATION" => ::core::result::Result::Ok(crate::v1_1::foundation_types::time::iso8601_type::Iso8601Type::Iso8601Duration(::serde::Deserialize::deserialize(__rest)?)),
"DV_TIME" => ::core::result::Result::Ok(crate::v1_1::foundation_types::time::iso8601_type::Iso8601Type::Iso8601Time(::serde::Deserialize::deserialize(__rest)?)),
"Iso8601_date" => ::core::result::Result::Ok(crate::v1_1::foundation_types::time::iso8601_type::Iso8601Type::Iso8601Date(::serde::Deserialize::deserialize(__rest)?)),
"Iso8601_date_time" => ::core::result::Result::Ok(crate::v1_1::foundation_types::time::iso8601_type::Iso8601Type::Iso8601DateTime(::serde::Deserialize::deserialize(__rest)?)),
"Iso8601_duration" => ::core::result::Result::Ok(crate::v1_1::foundation_types::time::iso8601_type::Iso8601Type::Iso8601Duration(::serde::Deserialize::deserialize(__rest)?)),
"Iso8601_time" => ::core::result::Result::Ok(crate::v1_1::foundation_types::time::iso8601_type::Iso8601Type::Iso8601Time(::serde::Deserialize::deserialize(__rest)?)),
"Iso8601_timezone" => ::core::result::Result::Ok(crate::v1_1::foundation_types::time::iso8601_type::Iso8601Type::Iso8601Timezone(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("Iso8601_type", __other, "DV_DATE, DV_DATE_TIME, DV_DURATION, DV_TIME, Iso8601_date, Iso8601_date_time, Iso8601_duration, Iso8601_time, Iso8601_timezone")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"Iso8601_type",
&__other,
"DV_DATE, DV_DATE_TIME, DV_DURATION, DV_TIME, Iso8601_date, Iso8601_date_time, Iso8601_duration, Iso8601_time, Iso8601_timezone",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"Iso8601_type",
"DV_DATE, DV_DATE_TIME, DV_DURATION, DV_TIME, Iso8601_date, Iso8601_date_time, Iso8601_duration, Iso8601_time, Iso8601_timezone",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::common::archetyped::link::Link {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "LINK", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "LINK")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "meaning", &self.meaning)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "type", &self.r#type)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "target", &self.target)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::common::archetyped::link::Link {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["meaning", "target", "type"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"meaning" => ::core::result::Result::Ok(__Field::__F0),
"type" => ::core::result::Result::Ok(__Field::__F1),
"target" => ::core::result::Result::Ok(__Field::__F2),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(__v, "LINK", __FIELDS),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::common::archetyped::link::Link;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `LINK` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("LINK"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("meaning"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("type"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("target"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::common::archetyped::link::Link {
meaning: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("meaning"))?,
r#type: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("type"))?,
target: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("target"))?,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "LINK", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::common::archetyped::locatable::Locatable {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::common::archetyped::locatable::Locatable::Action(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::Activity(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::Address(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::AdminEntry(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::Agent(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::Capability(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::Citation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::Cluster(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::Composition(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::Contact(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::EhrAccess(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::EhrStatus(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::Element(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::Evaluation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::Extract(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::ExtractActionRequest(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::ExtractChapter(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::ExtractFolder(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::ExtractRequest(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::Folder(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::GenericContentItem(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::GenericEntry(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::Group(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::History(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::Instruction(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::IntervalEvent(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::ItemList(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::ItemSingle(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::ItemTable(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::ItemTree(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::Observation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::OpenehrContentItem(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::Organisation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::PartyIdentity(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::PartyRelationship(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::Person(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::PointEvent(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::Role(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::Section(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::locatable::Locatable::ViewSection(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::common::archetyped::locatable::Locatable {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &[
"ACTION",
"ACTIVITY",
"ADDRESS",
"ADMIN_ENTRY",
"AGENT",
"CAPABILITY",
"CITATION",
"CLUSTER",
"COMPOSITION",
"CONTACT",
"EHR_ACCESS",
"EHR_STATUS",
"ELEMENT",
"EVALUATION",
"EXTRACT",
"EXTRACT_ACTION_REQUEST",
"EXTRACT_CHAPTER",
"EXTRACT_ENTITY_CHAPTER",
"EXTRACT_FOLDER",
"EXTRACT_REQUEST",
"FOLDER",
"GENERIC_CONTENT_ITEM",
"GENERIC_ENTRY",
"GROUP",
"HISTORY",
"INSTRUCTION",
"INTERVAL_EVENT",
"ITEM_LIST",
"ITEM_SINGLE",
"ITEM_TABLE",
"ITEM_TREE",
"OBSERVATION",
"OPENEHR_CONTENT_ITEM",
"ORGANISATION",
"PARTY_IDENTITY",
"PARTY_RELATIONSHIP",
"PERSON",
"POINT_EVENT",
"ROLE",
"SECTION",
"VIEW_SECTION",
];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::common::archetyped::locatable::Locatable;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `LOCATABLE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"ACTION" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::Action(::serde::Deserialize::deserialize(__rest)?)),
"ACTIVITY" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::Activity(::serde::Deserialize::deserialize(__rest)?)),
"ADDRESS" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::Address(::serde::Deserialize::deserialize(__rest)?)),
"ADMIN_ENTRY" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::AdminEntry(::serde::Deserialize::deserialize(__rest)?)),
"AGENT" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::Agent(::serde::Deserialize::deserialize(__rest)?)),
"CAPABILITY" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::Capability(::serde::Deserialize::deserialize(__rest)?)),
"CITATION" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::Citation(::serde::Deserialize::deserialize(__rest)?)),
"CLUSTER" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::Cluster(::serde::Deserialize::deserialize(__rest)?)),
"COMPOSITION" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::Composition(::serde::Deserialize::deserialize(__rest)?)),
"CONTACT" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::Contact(::serde::Deserialize::deserialize(__rest)?)),
"EHR_ACCESS" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::EhrAccess(::serde::Deserialize::deserialize(__rest)?)),
"EHR_STATUS" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::EhrStatus(::serde::Deserialize::deserialize(__rest)?)),
"ELEMENT" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::Element(::serde::Deserialize::deserialize(__rest)?)),
"EVALUATION" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::Evaluation(::serde::Deserialize::deserialize(__rest)?)),
"EXTRACT" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::Extract(::serde::Deserialize::deserialize(__rest)?)),
"EXTRACT_ACTION_REQUEST" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::ExtractActionRequest(::serde::Deserialize::deserialize(__rest)?)),
"EXTRACT_CHAPTER" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::ExtractChapter(::serde::Deserialize::deserialize(__rest)?)),
"EXTRACT_ENTITY_CHAPTER" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::ExtractChapter(::serde::Deserialize::deserialize(__rest)?)),
"EXTRACT_FOLDER" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::ExtractFolder(::serde::Deserialize::deserialize(__rest)?)),
"EXTRACT_REQUEST" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::ExtractRequest(::serde::Deserialize::deserialize(__rest)?)),
"FOLDER" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::Folder(::serde::Deserialize::deserialize(__rest)?)),
"GENERIC_CONTENT_ITEM" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::GenericContentItem(::serde::Deserialize::deserialize(__rest)?)),
"GENERIC_ENTRY" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::GenericEntry(::serde::Deserialize::deserialize(__rest)?)),
"GROUP" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::Group(::serde::Deserialize::deserialize(__rest)?)),
"HISTORY" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::History(::serde::Deserialize::deserialize(__rest)?)),
"INSTRUCTION" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::Instruction(::serde::Deserialize::deserialize(__rest)?)),
"INTERVAL_EVENT" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::IntervalEvent(::serde::Deserialize::deserialize(__rest)?)),
"ITEM_LIST" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::ItemList(::serde::Deserialize::deserialize(__rest)?)),
"ITEM_SINGLE" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::ItemSingle(::serde::Deserialize::deserialize(__rest)?)),
"ITEM_TABLE" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::ItemTable(::serde::Deserialize::deserialize(__rest)?)),
"ITEM_TREE" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::ItemTree(::serde::Deserialize::deserialize(__rest)?)),
"OBSERVATION" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::Observation(::serde::Deserialize::deserialize(__rest)?)),
"OPENEHR_CONTENT_ITEM" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::OpenehrContentItem(::serde::Deserialize::deserialize(__rest)?)),
"ORGANISATION" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::Organisation(::serde::Deserialize::deserialize(__rest)?)),
"PARTY_IDENTITY" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::PartyIdentity(::serde::Deserialize::deserialize(__rest)?)),
"PARTY_RELATIONSHIP" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::PartyRelationship(::serde::Deserialize::deserialize(__rest)?)),
"PERSON" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::Person(::serde::Deserialize::deserialize(__rest)?)),
"POINT_EVENT" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::PointEvent(::serde::Deserialize::deserialize(__rest)?)),
"ROLE" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::Role(::serde::Deserialize::deserialize(__rest)?)),
"SECTION" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::Section(::serde::Deserialize::deserialize(__rest)?)),
"VIEW_SECTION" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::locatable::Locatable::ViewSection(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("LOCATABLE", __other, "ACTION, ACTIVITY, ADDRESS, ADMIN_ENTRY, AGENT, CAPABILITY, CITATION, CLUSTER, COMPOSITION, CONTACT, EHR_ACCESS, EHR_STATUS, ELEMENT, EVALUATION, EXTRACT, EXTRACT_ACTION_REQUEST, EXTRACT_CHAPTER, EXTRACT_ENTITY_CHAPTER, EXTRACT_FOLDER, EXTRACT_REQUEST, FOLDER, GENERIC_CONTENT_ITEM, GENERIC_ENTRY, GROUP, HISTORY, INSTRUCTION, INTERVAL_EVENT, ITEM_LIST, ITEM_SINGLE, ITEM_TABLE, ITEM_TREE, OBSERVATION, OPENEHR_CONTENT_ITEM, ORGANISATION, PARTY_IDENTITY, PARTY_RELATIONSHIP, PERSON, POINT_EVENT, ROLE, SECTION, VIEW_SECTION")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"LOCATABLE",
&__other,
"ACTION, ACTIVITY, ADDRESS, ADMIN_ENTRY, AGENT, CAPABILITY, CITATION, CLUSTER, COMPOSITION, CONTACT, EHR_ACCESS, EHR_STATUS, ELEMENT, EVALUATION, EXTRACT, EXTRACT_ACTION_REQUEST, EXTRACT_CHAPTER, EXTRACT_ENTITY_CHAPTER, EXTRACT_FOLDER, EXTRACT_REQUEST, FOLDER, GENERIC_CONTENT_ITEM, GENERIC_ENTRY, GROUP, HISTORY, INSTRUCTION, INTERVAL_EVENT, ITEM_LIST, ITEM_SINGLE, ITEM_TABLE, ITEM_TREE, OBSERVATION, OPENEHR_CONTENT_ITEM, ORGANISATION, PARTY_IDENTITY, PARTY_RELATIONSHIP, PERSON, POINT_EVENT, ROLE, SECTION, VIEW_SECTION",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"LOCATABLE",
"ACTION, ACTIVITY, ADDRESS, ADMIN_ENTRY, AGENT, CAPABILITY, CITATION, CLUSTER, COMPOSITION, CONTACT, EHR_ACCESS, EHR_STATUS, ELEMENT, EVALUATION, EXTRACT, EXTRACT_ACTION_REQUEST, EXTRACT_CHAPTER, EXTRACT_ENTITY_CHAPTER, EXTRACT_FOLDER, EXTRACT_REQUEST, FOLDER, GENERIC_CONTENT_ITEM, GENERIC_ENTRY, GROUP, HISTORY, INSTRUCTION, INTERVAL_EVENT, ITEM_LIST, ITEM_SINGLE, ITEM_TABLE, ITEM_TREE, OBSERVATION, OPENEHR_CONTENT_ITEM, ORGANISATION, PARTY_IDENTITY, PARTY_RELATIONSHIP, PERSON, POINT_EVENT, ROLE, SECTION, VIEW_SECTION",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize
for crate::v1_1::support::measurement::measurement_service::MeasurementService
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 1usize;
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "MEASUREMENT_SERVICE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "MEASUREMENT_SERVICE")?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::support::measurement::measurement_service::MeasurementService
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[];
enum __Field {
__Type,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"MEASUREMENT_SERVICE",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::support::measurement::measurement_service::MeasurementService;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `MEASUREMENT_SERVICE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("MEASUREMENT_SERVICE"),
)?;
}
}
}
::core::result::Result::Ok(
crate::v1_1::support::measurement::measurement_service::MeasurementService {},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"MEASUREMENT_SERVICE",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::ehr_extract::message::message::Message {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.signature.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "MESSAGE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "MESSAGE")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "audit", &self.audit)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "author", &self.author)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "content", &self.content)?;
if let Some(__v) = &self.signature {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "signature", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::ehr_extract::message::message::Message {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["audit", "author", "content", "signature"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"audit" => ::core::result::Result::Ok(__Field::__F0),
"author" => ::core::result::Result::Ok(__Field::__F1),
"content" => ::core::result::Result::Ok(__Field::__F2),
"signature" => ::core::result::Result::Ok(__Field::__F3),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "MESSAGE", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::ehr_extract::message::message::Message;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `MESSAGE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("MESSAGE"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("audit"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("author"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("content"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("signature"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::ehr_extract::message::message::Message {
audit: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("audit"))?,
author: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("author"))?,
content: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("content"))?,
signature: __s3.flatten(),
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "MESSAGE", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::ehr_extract::message::message_content::MessageContent {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::ehr_extract::message::message_content::MessageContent::SyncExtract(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_1::ehr_extract::message::message_content::MessageContent::SyncExtractRequest(__x) => ::serde::Serialize::serialize(__x, __serializer),
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::ehr_extract::message::message_content::MessageContent
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["SYNC_EXTRACT", "SYNC_EXTRACT_REQUEST"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::ehr_extract::message::message_content::MessageContent;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `MESSAGE_CONTENT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"SYNC_EXTRACT" => ::core::result::Result::Ok(crate::v1_1::ehr_extract::message::message_content::MessageContent::SyncExtract(::serde::Deserialize::deserialize(__rest)?)),
"SYNC_EXTRACT_REQUEST" => ::core::result::Result::Ok(crate::v1_1::ehr_extract::message::message_content::MessageContent::SyncExtractRequest(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("MESSAGE_CONTENT", __other, "SYNC_EXTRACT, SYNC_EXTRACT_REQUEST")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"MESSAGE_CONTENT",
&__other,
"SYNC_EXTRACT, SYNC_EXTRACT_REQUEST",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"MESSAGE_CONTENT",
"SYNC_EXTRACT, SYNC_EXTRACT_REQUEST",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::composition::content::entry::observation::Observation {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 7usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self
.other_participations
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.workflow_id.is_some() {
__n += 1;
}
if self.provider.is_some() {
__n += 1;
}
if self.protocol.is_some() {
__n += 1;
}
if self.guideline_id.is_some() {
__n += 1;
}
if self.state.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "OBSERVATION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "OBSERVATION")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "language", &self.language)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "encoding", &self.encoding)?;
if let Some(__v) = &self.other_participations
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "other_participations", __v)?;
}
if let Some(__v) = &self.workflow_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "workflow_id", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "subject", &self.subject)?;
if let Some(__v) = &self.provider {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "provider", __v)?;
}
if let Some(__v) = &self.protocol {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "protocol", __v)?;
}
if let Some(__v) = &self.guideline_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "guideline_id", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "data", &self.data)?;
if let Some(__v) = &self.state {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "state", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::composition::content::entry::observation::Observation
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"data",
"encoding",
"feeder_audit",
"guideline_id",
"language",
"links",
"name",
"other_participations",
"protocol",
"provider",
"state",
"subject",
"uid",
"workflow_id",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
__F11,
__F12,
__F13,
__F14,
__F15,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"language" => ::core::result::Result::Ok(__Field::__F6),
"encoding" => ::core::result::Result::Ok(__Field::__F7),
"other_participations" => ::core::result::Result::Ok(__Field::__F8),
"workflow_id" => ::core::result::Result::Ok(__Field::__F9),
"subject" => ::core::result::Result::Ok(__Field::__F10),
"provider" => ::core::result::Result::Ok(__Field::__F11),
"protocol" => ::core::result::Result::Ok(__Field::__F12),
"guideline_id" => ::core::result::Result::Ok(__Field::__F13),
"data" => ::core::result::Result::Ok(__Field::__F14),
"state" => ::core::result::Result::Ok(__Field::__F15),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"OBSERVATION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::composition::content::entry::observation::Observation;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `OBSERVATION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<_> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s10: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s11: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s12: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s13: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s14: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s15: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("OBSERVATION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("language"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("encoding"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_participations"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("workflow_id"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("subject"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F11 => {
if __s11.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("provider"),
);
}
__s11 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F12 => {
if __s12.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("protocol"),
);
}
__s12 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F13 => {
if __s13.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("guideline_id"),
);
}
__s13 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F14 => {
if __s14.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("data"),
);
}
__s14 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F15 => {
if __s15.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("state"),
);
}
__s15 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::composition::content::entry::observation::Observation {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
language: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("language"))?,
encoding: __s7
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("encoding"))?,
other_participations: __s8,
workflow_id: __s9.flatten(),
subject: __s10
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("subject"))?,
provider: __s11.flatten(),
protocol: __s12.flatten(),
guideline_id: __s13.flatten(),
data: __s14
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("data"))?,
state: __s15.flatten(),
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"OBSERVATION",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::support::terminology::openehr_code_set_identifiers::OpenehrCodeSetIdentifiersData {
fn serialize<__S: ::serde::Serializer>(&self, __serializer: __S) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 1usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "OPENEHR_CODE_SET_IDENTIFIERS", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "OPENEHR_CODE_SET_IDENTIFIERS")?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::support::terminology::openehr_code_set_identifiers::OpenehrCodeSetIdentifiersData {
fn deserialize<__D: ::serde::Deserializer<'de>>(__deserializer: __D) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[];
enum __Field { __Type, }
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(__deserializer: __D) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(self, __v: &str) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
_ => ::core::result::Result::Err(::openehr_base::serde_support::unknown_field(__v, "OPENEHR_CODE_SET_IDENTIFIERS", __FIELDS)),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::support::terminology::openehr_code_set_identifiers::OpenehrCodeSetIdentifiersData;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `OPENEHR_CODE_SET_IDENTIFIERS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(self, mut __map: __A) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type { return ::core::result::Result::Err(::serde::de::Error::duplicate_field("_type")); }
__seen_type = true;
::serde::de::MapAccess::next_value_seed(&mut __map, ::openehr_base::serde_support::ExpectedType("OPENEHR_CODE_SET_IDENTIFIERS"))?;
}
}
}
::core::result::Result::Ok(crate::v1_1::support::terminology::openehr_code_set_identifiers::OpenehrCodeSetIdentifiersData {
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "OPENEHR_CODE_SET_IDENTIFIERS", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize
for crate::v1_1::support::terminology::openehr_code_set_identifiers::OpenehrCodeSetIdentifiers
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::support::terminology::openehr_code_set_identifiers::OpenehrCodeSetIdentifiers::TerminologyService(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_1::support::terminology::openehr_code_set_identifiers::OpenehrCodeSetIdentifiers::OpenehrCodeSetIdentifiers(__x) => ::serde::Serialize::serialize(__x, __serializer),
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::support::terminology::openehr_code_set_identifiers::OpenehrCodeSetIdentifiers
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["OPENEHR_CODE_SET_IDENTIFIERS", "TERMINOLOGY_SERVICE"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::support::terminology::openehr_code_set_identifiers::OpenehrCodeSetIdentifiers;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `OPENEHR_CODE_SET_IDENTIFIERS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"OPENEHR_CODE_SET_IDENTIFIERS" => ::core::result::Result::Ok(crate::v1_1::support::terminology::openehr_code_set_identifiers::OpenehrCodeSetIdentifiers::OpenehrCodeSetIdentifiers(::serde::Deserialize::deserialize(__rest)?)),
"TERMINOLOGY_SERVICE" => ::core::result::Result::Ok(crate::v1_1::support::terminology::openehr_code_set_identifiers::OpenehrCodeSetIdentifiers::TerminologyService(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("OPENEHR_CODE_SET_IDENTIFIERS", __other, "OPENEHR_CODE_SET_IDENTIFIERS, TERMINOLOGY_SERVICE")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"OPENEHR_CODE_SET_IDENTIFIERS",
&__other,
"OPENEHR_CODE_SET_IDENTIFIERS, TERMINOLOGY_SERVICE",
))
}
None => {
let __rest =
::openehr_base::serde_support::TaggedRest::new(None, __buffered, __map);
::core::result::Result::Ok(crate::v1_1::support::terminology::openehr_code_set_identifiers::OpenehrCodeSetIdentifiers::OpenehrCodeSetIdentifiers(::serde::Deserialize::deserialize(__rest)?))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize
for crate::v1_1::ehr_extract::openehr_extract::openehr_content_item::OpenehrContentItem
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.is_changed.is_some() {
__n += 1;
}
if self.is_masked.is_some() {
__n += 1;
}
if self.item.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "OPENEHR_CONTENT_ITEM", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "OPENEHR_CONTENT_ITEM")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "is_primary", &self.is_primary)?;
if let Some(__v) = &self.is_changed {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "is_changed", __v)?;
}
if let Some(__v) = &self.is_masked {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "is_masked", __v)?;
}
if let Some(__v) = &self.item {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "item", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::ehr_extract::openehr_extract::openehr_content_item::OpenehrContentItem
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"feeder_audit",
"is_changed",
"is_masked",
"is_primary",
"item",
"links",
"name",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"is_primary" => ::core::result::Result::Ok(__Field::__F6),
"is_changed" => ::core::result::Result::Ok(__Field::__F7),
"is_masked" => ::core::result::Result::Ok(__Field::__F8),
"item" => ::core::result::Result::Ok(__Field::__F9),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"OPENEHR_CONTENT_ITEM",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value =
crate::v1_1::ehr_extract::openehr_extract::openehr_content_item::OpenehrContentItem;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `OPENEHR_CONTENT_ITEM` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("OPENEHR_CONTENT_ITEM"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("is_primary"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("is_changed"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("is_masked"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("item"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::ehr_extract::openehr_extract::openehr_content_item::OpenehrContentItem {
name: __s0.flatten().ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
is_primary: __s6.flatten().ok_or_else(|| ::serde::de::Error::missing_field("is_primary"))?,
is_changed: __s7.flatten(),
is_masked: __s8.flatten(),
item: __s9.flatten(),
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"OPENEHR_CONTENT_ITEM",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::support::terminology::openehr_terminology_group_identifiers::OpenehrTerminologyGroupIdentifiersData {
fn serialize<__S: ::serde::Serializer>(&self, __serializer: __S) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 1usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS")?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::support::terminology::openehr_terminology_group_identifiers::OpenehrTerminologyGroupIdentifiersData {
fn deserialize<__D: ::serde::Deserializer<'de>>(__deserializer: __D) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[];
enum __Field { __Type, }
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(__deserializer: __D) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(self, __v: &str) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
_ => ::core::result::Result::Err(::openehr_base::serde_support::unknown_field(__v, "OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS", __FIELDS)),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::support::terminology::openehr_terminology_group_identifiers::OpenehrTerminologyGroupIdentifiersData;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(self, mut __map: __A) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type { return ::core::result::Result::Err(::serde::de::Error::duplicate_field("_type")); }
__seen_type = true;
::serde::de::MapAccess::next_value_seed(&mut __map, ::openehr_base::serde_support::ExpectedType("OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS"))?;
}
}
}
::core::result::Result::Ok(crate::v1_1::support::terminology::openehr_terminology_group_identifiers::OpenehrTerminologyGroupIdentifiersData {
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::support::terminology::openehr_terminology_group_identifiers::OpenehrTerminologyGroupIdentifiers {
fn serialize<__S: ::serde::Serializer>(&self, __serializer: __S) -> ::core::result::Result<__S::Ok, __S::Error> { match self {
crate::v1_1::support::terminology::openehr_terminology_group_identifiers::OpenehrTerminologyGroupIdentifiers::TerminologyService(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_1::support::terminology::openehr_terminology_group_identifiers::OpenehrTerminologyGroupIdentifiers::OpenehrTerminologyGroupIdentifiers(__x) => ::serde::Serialize::serialize(__x, __serializer),
} }
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::support::terminology::openehr_terminology_group_identifiers::OpenehrTerminologyGroupIdentifiers {
fn deserialize<__D: ::serde::Deserializer<'de>>(__deserializer: __D) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS", "TERMINOLOGY_SERVICE"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::support::terminology::openehr_terminology_group_identifiers::OpenehrTerminologyGroupIdentifiers;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(self, mut __map: __A) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) = ::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(Some(__t), __buffered, __map);
match __t {
"OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS" => ::core::result::Result::Ok(crate::v1_1::support::terminology::openehr_terminology_group_identifiers::OpenehrTerminologyGroupIdentifiers::OpenehrTerminologyGroupIdentifiers(::serde::Deserialize::deserialize(__rest)?)),
"TERMINOLOGY_SERVICE" => ::core::result::Result::Ok(crate::v1_1::support::terminology::openehr_terminology_group_identifiers::OpenehrTerminologyGroupIdentifiers::TerminologyService(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS", __other, "OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS, TERMINOLOGY_SERVICE")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS", &__other, "OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS, TERMINOLOGY_SERVICE")),
None => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(None, __buffered, __map);
::core::result::Result::Ok(crate::v1_1::support::terminology::openehr_terminology_group_identifiers::OpenehrTerminologyGroupIdentifiers::OpenehrTerminologyGroupIdentifiers(::serde::Deserialize::deserialize(__rest)?))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::demographic::organisation::Organisation {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.contacts.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.details.is_some() {
__n += 1;
}
if self
.reverse_relationships
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self
.relationships
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.languages.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.roles.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "ORGANISATION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ORGANISATION")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "identities", &self.identities)?;
if let Some(__v) = &self.contacts
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "contacts", __v)?;
}
if let Some(__v) = &self.details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "details", __v)?;
}
if let Some(__v) = &self.reverse_relationships
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"reverse_relationships",
__v,
)?;
}
if let Some(__v) = &self.relationships
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "relationships", __v)?;
}
if let Some(__v) = &self.languages
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "languages", __v)?;
}
if let Some(__v) = &self.roles
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "roles", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::demographic::organisation::Organisation {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"contacts",
"details",
"feeder_audit",
"identities",
"languages",
"links",
"name",
"relationships",
"reverse_relationships",
"roles",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
__F11,
__F12,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"identities" => ::core::result::Result::Ok(__Field::__F6),
"contacts" => ::core::result::Result::Ok(__Field::__F7),
"details" => ::core::result::Result::Ok(__Field::__F8),
"reverse_relationships" => ::core::result::Result::Ok(__Field::__F9),
"relationships" => ::core::result::Result::Ok(__Field::__F10),
"languages" => ::core::result::Result::Ok(__Field::__F11),
"roles" => ::core::result::Result::Ok(__Field::__F12),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"ORGANISATION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::demographic::organisation::Organisation;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ORGANISATION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<_> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<_> = None;
let mut __s10: ::core::option::Option<_> = None;
let mut __s11: ::core::option::Option<_> = None;
let mut __s12: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ORGANISATION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("identities"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("contacts"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("details"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("reverse_relationships"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("relationships"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F11 => {
if __s11.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("languages"),
);
}
__s11 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F12 => {
if __s12.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("roles"),
);
}
__s12 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::demographic::organisation::Organisation {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
identities: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("identities"))?,
contacts: __s7,
details: __s8.flatten(),
reverse_relationships: __s9,
relationships: __s10,
languages: ::openehr_base::serde_support::refuse_empty_list(
__s11,
"languages",
)?,
roles: __s12,
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"ORGANISATION",
__FIELDS,
__Visitor,
)
}
}
impl<T: ::serde::Serialize> ::serde::Serialize
for crate::v1_1::common::change_control::original_version::OriginalVersion<T>
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 5usize;
if self.signature.is_some() {
__n += 1;
}
if self.preceding_version_uid.is_some() {
__n += 1;
}
if self
.other_input_version_uids
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self
.attestations
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.data.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "ORIGINAL_VERSION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ORIGINAL_VERSION")?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"contribution",
&self.contribution,
)?;
if let Some(__v) = &self.signature {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "signature", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"commit_audit",
&self.commit_audit,
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
if let Some(__v) = &self.preceding_version_uid {
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"preceding_version_uid",
__v,
)?;
}
if let Some(__v) = &self.other_input_version_uids
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"other_input_version_uids",
__v,
)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"lifecycle_state",
&self.lifecycle_state,
)?;
if let Some(__v) = &self.attestations
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "attestations", __v)?;
}
if let Some(__v) = &self.data {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "data", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::Deserialize<'de>
for crate::v1_1::common::change_control::original_version::OriginalVersion<T>
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"attestations",
"commit_audit",
"contribution",
"data",
"lifecycle_state",
"other_input_version_uids",
"preceding_version_uid",
"signature",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"contribution" => ::core::result::Result::Ok(__Field::__F0),
"signature" => ::core::result::Result::Ok(__Field::__F1),
"commit_audit" => ::core::result::Result::Ok(__Field::__F2),
"uid" => ::core::result::Result::Ok(__Field::__F3),
"preceding_version_uid" => ::core::result::Result::Ok(__Field::__F4),
"other_input_version_uids" => ::core::result::Result::Ok(__Field::__F5),
"lifecycle_state" => ::core::result::Result::Ok(__Field::__F6),
"attestations" => ::core::result::Result::Ok(__Field::__F7),
"data" => ::core::result::Result::Ok(__Field::__F8),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"ORIGINAL_VERSION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor<T>(::core::marker::PhantomData<(T,)>);
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::de::Visitor<'de> for __Visitor<T> {
type Value = crate::v1_1::common::change_control::original_version::OriginalVersion<T>;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ORIGINAL_VERSION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<_> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<_> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ORIGINAL_VERSION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("contribution"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("signature"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("commit_audit"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("preceding_version_uid"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_input_version_uids"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("lifecycle_state"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("attestations"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("data"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::common::change_control::original_version::OriginalVersion {
contribution: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("contribution"))?,
signature: __s1.flatten(),
commit_audit: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("commit_audit"))?,
uid: __s3
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
preceding_version_uid: __s4.flatten(),
other_input_version_uids: __s5,
lifecycle_state: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("lifecycle_state"))?,
attestations: __s7,
data: __s8.flatten(),
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"ORIGINAL_VERSION",
__FIELDS,
__Visitor(::core::marker::PhantomData),
)
}
}
impl ::serde::Serialize for crate::v1_1::common::generic::participation::Participation {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.mode.is_some() {
__n += 1;
}
if self.time.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "PARTICIPATION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "PARTICIPATION")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "function", &self.function)?;
if let Some(__v) = &self.mode {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "mode", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "performer", &self.performer)?;
if let Some(__v) = &self.time {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "time", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::common::generic::participation::Participation {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["function", "mode", "performer", "time"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"function" => ::core::result::Result::Ok(__Field::__F0),
"mode" => ::core::result::Result::Ok(__Field::__F1),
"performer" => ::core::result::Result::Ok(__Field::__F2),
"time" => ::core::result::Result::Ok(__Field::__F3),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"PARTICIPATION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::common::generic::participation::Participation;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `PARTICIPATION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("PARTICIPATION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("function"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("mode"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("performer"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::common::generic::participation::Participation {
function: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("function"))?,
mode: __s1.flatten(),
performer: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("performer"))?,
time: __s3.flatten(),
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"PARTICIPATION",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::demographic::party::Party {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::demographic::party::Party::Agent(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::demographic::party::Party::Group(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::demographic::party::Party::Organisation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::demographic::party::Party::Person(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::demographic::party::Party::Role(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::demographic::party::Party {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["AGENT", "GROUP", "ORGANISATION", "PERSON", "ROLE"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::demographic::party::Party;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `PARTY` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"AGENT" => ::core::result::Result::Ok(
crate::v1_1::demographic::party::Party::Agent(
::serde::Deserialize::deserialize(__rest)?,
),
),
"GROUP" => ::core::result::Result::Ok(
crate::v1_1::demographic::party::Party::Group(
::serde::Deserialize::deserialize(__rest)?,
),
),
"ORGANISATION" => ::core::result::Result::Ok(
crate::v1_1::demographic::party::Party::Organisation(
::serde::Deserialize::deserialize(__rest)?,
),
),
"PERSON" => ::core::result::Result::Ok(
crate::v1_1::demographic::party::Party::Person(
::serde::Deserialize::deserialize(__rest)?,
),
),
"ROLE" => ::core::result::Result::Ok(
crate::v1_1::demographic::party::Party::Role(
::serde::Deserialize::deserialize(__rest)?,
),
),
__other => ::core::result::Result::Err(
::openehr_base::serde_support::unexpected_type(
"PARTY",
__other,
"AGENT, GROUP, ORGANISATION, PERSON, ROLE",
),
),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"PARTY",
&__other,
"AGENT, GROUP, ORGANISATION, PERSON, ROLE",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"PARTY",
"AGENT, GROUP, ORGANISATION, PERSON, ROLE",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::common::generic::party_identified::PartyIdentifiedData {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 1usize;
if self.external_ref.is_some() {
__n += 1;
}
if self.name.is_some() {
__n += 1;
}
if self.identifiers.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "PARTY_IDENTIFIED", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "PARTY_IDENTIFIED")?;
if let Some(__v) = &self.external_ref {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "external_ref", __v)?;
}
if let Some(__v) = &self.name {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", __v)?;
}
if let Some(__v) = &self.identifiers
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "identifiers", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::common::generic::party_identified::PartyIdentifiedData
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["external_ref", "identifiers", "name"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"external_ref" => ::core::result::Result::Ok(__Field::__F0),
"name" => ::core::result::Result::Ok(__Field::__F1),
"identifiers" => ::core::result::Result::Ok(__Field::__F2),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"PARTY_IDENTIFIED",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::common::generic::party_identified::PartyIdentifiedData;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `PARTY_IDENTIFIED` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("PARTY_IDENTIFIED"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("external_ref"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("identifiers"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::common::generic::party_identified::PartyIdentifiedData {
external_ref: __s0.flatten(),
name: __s1.flatten(),
identifiers: __s2,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"PARTY_IDENTIFIED",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::common::generic::party_identified::PartyIdentified {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::common::generic::party_identified::PartyIdentified::PartyRelated(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::generic::party_identified::PartyIdentified::PartyIdentified(
__x,
) => ::serde::Serialize::serialize(__x, __serializer),
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::common::generic::party_identified::PartyIdentified
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["PARTY_IDENTIFIED", "PARTY_RELATED"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::common::generic::party_identified::PartyIdentified;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `PARTY_IDENTIFIED` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"PARTY_IDENTIFIED" => ::core::result::Result::Ok(crate::v1_1::common::generic::party_identified::PartyIdentified::PartyIdentified(::serde::Deserialize::deserialize(__rest)?)),
"PARTY_RELATED" => ::core::result::Result::Ok(crate::v1_1::common::generic::party_identified::PartyIdentified::PartyRelated(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("PARTY_IDENTIFIED", __other, "PARTY_IDENTIFIED, PARTY_RELATED")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"PARTY_IDENTIFIED",
&__other,
"PARTY_IDENTIFIED, PARTY_RELATED",
))
}
None => {
let __rest =
::openehr_base::serde_support::TaggedRest::new(None, __buffered, __map);
::core::result::Result::Ok(crate::v1_1::common::generic::party_identified::PartyIdentified::PartyIdentified(::serde::Deserialize::deserialize(__rest)?))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::demographic::party_identity::PartyIdentity {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "PARTY_IDENTITY", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "PARTY_IDENTITY")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "details", &self.details)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::demographic::party_identity::PartyIdentity {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"details",
"feeder_audit",
"links",
"name",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"details" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"PARTY_IDENTITY",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::demographic::party_identity::PartyIdentity;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `PARTY_IDENTITY` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("PARTY_IDENTITY"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("details"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::demographic::party_identity::PartyIdentity {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
details: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("details"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"PARTY_IDENTITY",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::common::generic::party_proxy::PartyProxy {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::common::generic::party_proxy::PartyProxy::PartyIdentified(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::generic::party_proxy::PartyProxy::PartySelf(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::common::generic::party_proxy::PartyProxy {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["PARTY_IDENTIFIED", "PARTY_RELATED", "PARTY_SELF"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::common::generic::party_proxy::PartyProxy;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `PARTY_PROXY` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"PARTY_IDENTIFIED" => ::core::result::Result::Ok(crate::v1_1::common::generic::party_proxy::PartyProxy::PartyIdentified(::serde::Deserialize::deserialize(__rest)?)),
"PARTY_RELATED" => ::core::result::Result::Ok(crate::v1_1::common::generic::party_proxy::PartyProxy::PartyIdentified(::serde::Deserialize::deserialize(__rest)?)),
"PARTY_SELF" => ::core::result::Result::Ok(crate::v1_1::common::generic::party_proxy::PartyProxy::PartySelf(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("PARTY_PROXY", __other, "PARTY_IDENTIFIED, PARTY_RELATED, PARTY_SELF")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"PARTY_PROXY",
&__other,
"PARTY_IDENTIFIED, PARTY_RELATED, PARTY_SELF",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"PARTY_PROXY",
"PARTY_IDENTIFIED, PARTY_RELATED, PARTY_SELF",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::common::generic::party_related::PartyRelated {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self.external_ref.is_some() {
__n += 1;
}
if self.name.is_some() {
__n += 1;
}
if self.identifiers.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "PARTY_RELATED", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "PARTY_RELATED")?;
if let Some(__v) = &self.external_ref {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "external_ref", __v)?;
}
if let Some(__v) = &self.name {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", __v)?;
}
if let Some(__v) = &self.identifiers
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "identifiers", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"relationship",
&self.relationship,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::common::generic::party_related::PartyRelated {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["external_ref", "identifiers", "name", "relationship"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"external_ref" => ::core::result::Result::Ok(__Field::__F0),
"name" => ::core::result::Result::Ok(__Field::__F1),
"identifiers" => ::core::result::Result::Ok(__Field::__F2),
"relationship" => ::core::result::Result::Ok(__Field::__F3),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"PARTY_RELATED",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::common::generic::party_related::PartyRelated;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `PARTY_RELATED` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<_> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("PARTY_RELATED"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("external_ref"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("identifiers"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("relationship"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::common::generic::party_related::PartyRelated {
external_ref: __s0.flatten(),
name: __s1.flatten(),
identifiers: __s2,
relationship: __s3
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("relationship"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"PARTY_RELATED",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::demographic::party_relationship::PartyRelationship {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 5usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.details.is_some() {
__n += 1;
}
if self.time_validity.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "PARTY_RELATIONSHIP", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "PARTY_RELATIONSHIP")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
if let Some(__v) = &self.details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "details", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "target", &self.target)?;
if let Some(__v) = &self.time_validity {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "time_validity", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "source", &self.source)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::demographic::party_relationship::PartyRelationship
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"details",
"feeder_audit",
"links",
"name",
"source",
"target",
"time_validity",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"details" => ::core::result::Result::Ok(__Field::__F6),
"target" => ::core::result::Result::Ok(__Field::__F7),
"time_validity" => ::core::result::Result::Ok(__Field::__F8),
"source" => ::core::result::Result::Ok(__Field::__F9),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"PARTY_RELATIONSHIP",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::demographic::party_relationship::PartyRelationship;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `PARTY_RELATIONSHIP` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("PARTY_RELATIONSHIP"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("details"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("target"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_validity"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("source"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::demographic::party_relationship::PartyRelationship {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
details: __s6.flatten(),
target: __s7
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("target"))?,
time_validity: __s8.flatten(),
source: __s9
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("source"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"PARTY_RELATIONSHIP",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::common::generic::party_self::PartySelf {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 1usize;
if self.external_ref.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "PARTY_SELF", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "PARTY_SELF")?;
if let Some(__v) = &self.external_ref {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "external_ref", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::common::generic::party_self::PartySelf {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["external_ref"];
enum __Field {
__Type,
__F0,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"external_ref" => ::core::result::Result::Ok(__Field::__F0),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"PARTY_SELF",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::common::generic::party_self::PartySelf;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `PARTY_SELF` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("PARTY_SELF"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("external_ref"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::common::generic::party_self::PartySelf {
external_ref: __s0.flatten(),
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "PARTY_SELF", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::common::archetyped::pathable::Pathable {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::common::archetyped::pathable::Pathable::Action(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::Activity(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::Address(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::AdminEntry(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::Agent(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::Capability(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::Citation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::Cluster(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::Composition(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::Contact(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::EhrAccess(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::EhrStatus(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::Element(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::Evaluation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::EventContext(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::Extract(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::ExtractActionRequest(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::ExtractChapter(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::ExtractFolder(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::ExtractRequest(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::Folder(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::GenericContentItem(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::GenericEntry(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::Group(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::History(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::Instruction(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::InstructionDetails(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::IntervalEvent(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::IsmTransition(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::ItemList(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::ItemSingle(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::ItemTable(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::ItemTree(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::Observation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::OpenehrContentItem(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::Organisation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::PartyIdentity(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::PartyRelationship(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::Person(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::PointEvent(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::Role(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::Section(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::archetyped::pathable::Pathable::ViewSection(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::common::archetyped::pathable::Pathable {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &[
"ACTION",
"ACTIVITY",
"ADDRESS",
"ADMIN_ENTRY",
"AGENT",
"CAPABILITY",
"CITATION",
"CLUSTER",
"COMPOSITION",
"CONTACT",
"EHR_ACCESS",
"EHR_STATUS",
"ELEMENT",
"EVALUATION",
"EVENT_CONTEXT",
"EXTRACT",
"EXTRACT_ACTION_REQUEST",
"EXTRACT_CHAPTER",
"EXTRACT_ENTITY_CHAPTER",
"EXTRACT_FOLDER",
"EXTRACT_REQUEST",
"FOLDER",
"GENERIC_CONTENT_ITEM",
"GENERIC_ENTRY",
"GROUP",
"HISTORY",
"INSTRUCTION",
"INSTRUCTION_DETAILS",
"INTERVAL_EVENT",
"ISM_TRANSITION",
"ITEM_LIST",
"ITEM_SINGLE",
"ITEM_TABLE",
"ITEM_TREE",
"OBSERVATION",
"OPENEHR_CONTENT_ITEM",
"ORGANISATION",
"PARTY_IDENTITY",
"PARTY_RELATIONSHIP",
"PERSON",
"POINT_EVENT",
"ROLE",
"SECTION",
"VIEW_SECTION",
];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::common::archetyped::pathable::Pathable;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `PATHABLE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"ACTION" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::Action(::serde::Deserialize::deserialize(__rest)?)),
"ACTIVITY" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::Activity(::serde::Deserialize::deserialize(__rest)?)),
"ADDRESS" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::Address(::serde::Deserialize::deserialize(__rest)?)),
"ADMIN_ENTRY" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::AdminEntry(::serde::Deserialize::deserialize(__rest)?)),
"AGENT" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::Agent(::serde::Deserialize::deserialize(__rest)?)),
"CAPABILITY" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::Capability(::serde::Deserialize::deserialize(__rest)?)),
"CITATION" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::Citation(::serde::Deserialize::deserialize(__rest)?)),
"CLUSTER" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::Cluster(::serde::Deserialize::deserialize(__rest)?)),
"COMPOSITION" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::Composition(::serde::Deserialize::deserialize(__rest)?)),
"CONTACT" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::Contact(::serde::Deserialize::deserialize(__rest)?)),
"EHR_ACCESS" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::EhrAccess(::serde::Deserialize::deserialize(__rest)?)),
"EHR_STATUS" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::EhrStatus(::serde::Deserialize::deserialize(__rest)?)),
"ELEMENT" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::Element(::serde::Deserialize::deserialize(__rest)?)),
"EVALUATION" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::Evaluation(::serde::Deserialize::deserialize(__rest)?)),
"EVENT_CONTEXT" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::EventContext(::serde::Deserialize::deserialize(__rest)?)),
"EXTRACT" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::Extract(::serde::Deserialize::deserialize(__rest)?)),
"EXTRACT_ACTION_REQUEST" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::ExtractActionRequest(::serde::Deserialize::deserialize(__rest)?)),
"EXTRACT_CHAPTER" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::ExtractChapter(::serde::Deserialize::deserialize(__rest)?)),
"EXTRACT_ENTITY_CHAPTER" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::ExtractChapter(::serde::Deserialize::deserialize(__rest)?)),
"EXTRACT_FOLDER" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::ExtractFolder(::serde::Deserialize::deserialize(__rest)?)),
"EXTRACT_REQUEST" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::ExtractRequest(::serde::Deserialize::deserialize(__rest)?)),
"FOLDER" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::Folder(::serde::Deserialize::deserialize(__rest)?)),
"GENERIC_CONTENT_ITEM" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::GenericContentItem(::serde::Deserialize::deserialize(__rest)?)),
"GENERIC_ENTRY" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::GenericEntry(::serde::Deserialize::deserialize(__rest)?)),
"GROUP" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::Group(::serde::Deserialize::deserialize(__rest)?)),
"HISTORY" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::History(::serde::Deserialize::deserialize(__rest)?)),
"INSTRUCTION" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::Instruction(::serde::Deserialize::deserialize(__rest)?)),
"INSTRUCTION_DETAILS" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::InstructionDetails(::serde::Deserialize::deserialize(__rest)?)),
"INTERVAL_EVENT" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::IntervalEvent(::serde::Deserialize::deserialize(__rest)?)),
"ISM_TRANSITION" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::IsmTransition(::serde::Deserialize::deserialize(__rest)?)),
"ITEM_LIST" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::ItemList(::serde::Deserialize::deserialize(__rest)?)),
"ITEM_SINGLE" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::ItemSingle(::serde::Deserialize::deserialize(__rest)?)),
"ITEM_TABLE" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::ItemTable(::serde::Deserialize::deserialize(__rest)?)),
"ITEM_TREE" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::ItemTree(::serde::Deserialize::deserialize(__rest)?)),
"OBSERVATION" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::Observation(::serde::Deserialize::deserialize(__rest)?)),
"OPENEHR_CONTENT_ITEM" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::OpenehrContentItem(::serde::Deserialize::deserialize(__rest)?)),
"ORGANISATION" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::Organisation(::serde::Deserialize::deserialize(__rest)?)),
"PARTY_IDENTITY" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::PartyIdentity(::serde::Deserialize::deserialize(__rest)?)),
"PARTY_RELATIONSHIP" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::PartyRelationship(::serde::Deserialize::deserialize(__rest)?)),
"PERSON" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::Person(::serde::Deserialize::deserialize(__rest)?)),
"POINT_EVENT" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::PointEvent(::serde::Deserialize::deserialize(__rest)?)),
"ROLE" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::Role(::serde::Deserialize::deserialize(__rest)?)),
"SECTION" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::Section(::serde::Deserialize::deserialize(__rest)?)),
"VIEW_SECTION" => ::core::result::Result::Ok(crate::v1_1::common::archetyped::pathable::Pathable::ViewSection(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("PATHABLE", __other, "ACTION, ACTIVITY, ADDRESS, ADMIN_ENTRY, AGENT, CAPABILITY, CITATION, CLUSTER, COMPOSITION, CONTACT, EHR_ACCESS, EHR_STATUS, ELEMENT, EVALUATION, EVENT_CONTEXT, EXTRACT, EXTRACT_ACTION_REQUEST, EXTRACT_CHAPTER, EXTRACT_ENTITY_CHAPTER, EXTRACT_FOLDER, EXTRACT_REQUEST, FOLDER, GENERIC_CONTENT_ITEM, GENERIC_ENTRY, GROUP, HISTORY, INSTRUCTION, INSTRUCTION_DETAILS, INTERVAL_EVENT, ISM_TRANSITION, ITEM_LIST, ITEM_SINGLE, ITEM_TABLE, ITEM_TREE, OBSERVATION, OPENEHR_CONTENT_ITEM, ORGANISATION, PARTY_IDENTITY, PARTY_RELATIONSHIP, PERSON, POINT_EVENT, ROLE, SECTION, VIEW_SECTION")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"PATHABLE",
&__other,
"ACTION, ACTIVITY, ADDRESS, ADMIN_ENTRY, AGENT, CAPABILITY, CITATION, CLUSTER, COMPOSITION, CONTACT, EHR_ACCESS, EHR_STATUS, ELEMENT, EVALUATION, EVENT_CONTEXT, EXTRACT, EXTRACT_ACTION_REQUEST, EXTRACT_CHAPTER, EXTRACT_ENTITY_CHAPTER, EXTRACT_FOLDER, EXTRACT_REQUEST, FOLDER, GENERIC_CONTENT_ITEM, GENERIC_ENTRY, GROUP, HISTORY, INSTRUCTION, INSTRUCTION_DETAILS, INTERVAL_EVENT, ISM_TRANSITION, ITEM_LIST, ITEM_SINGLE, ITEM_TABLE, ITEM_TREE, OBSERVATION, OPENEHR_CONTENT_ITEM, ORGANISATION, PARTY_IDENTITY, PARTY_RELATIONSHIP, PERSON, POINT_EVENT, ROLE, SECTION, VIEW_SECTION",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"PATHABLE",
"ACTION, ACTIVITY, ADDRESS, ADMIN_ENTRY, AGENT, CAPABILITY, CITATION, CLUSTER, COMPOSITION, CONTACT, EHR_ACCESS, EHR_STATUS, ELEMENT, EVALUATION, EVENT_CONTEXT, EXTRACT, EXTRACT_ACTION_REQUEST, EXTRACT_CHAPTER, EXTRACT_ENTITY_CHAPTER, EXTRACT_FOLDER, EXTRACT_REQUEST, FOLDER, GENERIC_CONTENT_ITEM, GENERIC_ENTRY, GROUP, HISTORY, INSTRUCTION, INSTRUCTION_DETAILS, INTERVAL_EVENT, ISM_TRANSITION, ITEM_LIST, ITEM_SINGLE, ITEM_TABLE, ITEM_TREE, OBSERVATION, OPENEHR_CONTENT_ITEM, ORGANISATION, PARTY_IDENTITY, PARTY_RELATIONSHIP, PERSON, POINT_EVENT, ROLE, SECTION, VIEW_SECTION",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::demographic::person::Person {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.contacts.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.details.is_some() {
__n += 1;
}
if self
.reverse_relationships
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self
.relationships
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.languages.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.roles.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "PERSON", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "PERSON")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "identities", &self.identities)?;
if let Some(__v) = &self.contacts
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "contacts", __v)?;
}
if let Some(__v) = &self.details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "details", __v)?;
}
if let Some(__v) = &self.reverse_relationships
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"reverse_relationships",
__v,
)?;
}
if let Some(__v) = &self.relationships
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "relationships", __v)?;
}
if let Some(__v) = &self.languages
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "languages", __v)?;
}
if let Some(__v) = &self.roles
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "roles", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::demographic::person::Person {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"contacts",
"details",
"feeder_audit",
"identities",
"languages",
"links",
"name",
"relationships",
"reverse_relationships",
"roles",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
__F11,
__F12,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"identities" => ::core::result::Result::Ok(__Field::__F6),
"contacts" => ::core::result::Result::Ok(__Field::__F7),
"details" => ::core::result::Result::Ok(__Field::__F8),
"reverse_relationships" => ::core::result::Result::Ok(__Field::__F9),
"relationships" => ::core::result::Result::Ok(__Field::__F10),
"languages" => ::core::result::Result::Ok(__Field::__F11),
"roles" => ::core::result::Result::Ok(__Field::__F12),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "PERSON", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::demographic::person::Person;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `PERSON` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<_> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<_> = None;
let mut __s10: ::core::option::Option<_> = None;
let mut __s11: ::core::option::Option<_> = None;
let mut __s12: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("PERSON"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("identities"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("contacts"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("details"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("reverse_relationships"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("relationships"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F11 => {
if __s11.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("languages"),
);
}
__s11 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F12 => {
if __s12.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("roles"),
);
}
__s12 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::demographic::person::Person {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
identities: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("identities"))?,
contacts: __s7,
details: __s8.flatten(),
reverse_relationships: __s9,
relationships: __s10,
languages: ::openehr_base::serde_support::refuse_empty_list(
__s11,
"languages",
)?,
roles: __s12,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "PERSON", __FIELDS, __Visitor)
}
}
impl<T: ::serde::Serialize> ::serde::Serialize
for crate::v1_1::data_structures::history::point_event::PointEvent<T>
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 5usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.state.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "POINT_EVENT", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "POINT_EVENT")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "time", &self.time)?;
if let Some(__v) = &self.state {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "state", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "data", &self.data)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::Deserialize<'de>
for crate::v1_1::data_structures::history::point_event::PointEvent<T>
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"data",
"feeder_audit",
"links",
"name",
"state",
"time",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"time" => ::core::result::Result::Ok(__Field::__F6),
"state" => ::core::result::Result::Ok(__Field::__F7),
"data" => ::core::result::Result::Ok(__Field::__F8),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"POINT_EVENT",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor<T>(::core::marker::PhantomData<(T,)>);
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::de::Visitor<'de> for __Visitor<T> {
type Value = crate::v1_1::data_structures::history::point_event::PointEvent<T>;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `POINT_EVENT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("POINT_EVENT"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("state"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("data"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::data_structures::history::point_event::PointEvent {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
time: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("time"))?,
state: __s7.flatten(),
data: __s8
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("data"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"POINT_EVENT",
__FIELDS,
__Visitor(::core::marker::PhantomData),
)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::quantity::proportion_kind::ProportionKind {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
::serde::Serializer::serialize_i32(__serializer, self.value())
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::data_types::quantity::proportion_kind::ProportionKind
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
let __v: i32 = ::serde::Deserialize::deserialize(__deserializer)?;
::core::result::Result::Ok(
crate::v1_1::data_types::quantity::proportion_kind::ProportionKind::from_value(__v),
)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::quantity::reference_range::ReferenceRange {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "REFERENCE_RANGE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "REFERENCE_RANGE")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "meaning", &self.meaning)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "range", &self.range)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::data_types::quantity::reference_range::ReferenceRange
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["meaning", "range"];
enum __Field {
__Type,
__F0,
__F1,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"meaning" => ::core::result::Result::Ok(__Field::__F0),
"range" => ::core::result::Result::Ok(__Field::__F1),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"REFERENCE_RANGE",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::quantity::reference_range::ReferenceRange;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `REFERENCE_RANGE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("REFERENCE_RANGE"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("meaning"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("range"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::data_types::quantity::reference_range::ReferenceRange {
meaning: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("meaning"))?,
range: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("range"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"REFERENCE_RANGE",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_1::common::resource::resource_description::ResourceDescription
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self
.other_contributors
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.resource_package_uri.is_some() {
__n += 1;
}
if self.other_details.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "RESOURCE_DESCRIPTION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "RESOURCE_DESCRIPTION")?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"original_author",
&self.original_author,
)?;
if let Some(__v) = &self.other_contributors
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "other_contributors", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"lifecycle_state",
&self.lifecycle_state,
)?;
if let Some(__v) = &self.resource_package_uri {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "resource_package_uri", __v)?;
}
if let Some(__v) = &self.other_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "other_details", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "details", &self.details)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::common::resource::resource_description::ResourceDescription
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"details",
"lifecycle_state",
"original_author",
"other_contributors",
"other_details",
"resource_package_uri",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"original_author" => ::core::result::Result::Ok(__Field::__F0),
"other_contributors" => ::core::result::Result::Ok(__Field::__F1),
"lifecycle_state" => ::core::result::Result::Ok(__Field::__F2),
"resource_package_uri" => ::core::result::Result::Ok(__Field::__F3),
"other_details" => ::core::result::Result::Ok(__Field::__F4),
"details" => ::core::result::Result::Ok(__Field::__F5),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"RESOURCE_DESCRIPTION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::common::resource::resource_description::ResourceDescription;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `RESOURCE_DESCRIPTION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<_> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("RESOURCE_DESCRIPTION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("original_author"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_contributors"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("lifecycle_state"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("resource_package_uri"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("details"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::common::resource::resource_description::ResourceDescription {
original_author: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("original_author"))?,
other_contributors: __s1,
lifecycle_state: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("lifecycle_state"))?,
resource_package_uri: __s3.flatten(),
other_details: __s4.flatten(),
details: __s5
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("details"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"RESOURCE_DESCRIPTION",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_1::common::resource::resource_description_item::ResourceDescriptionItem
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.keywords.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.use_.is_some() {
__n += 1;
}
if self.misuse.is_some() {
__n += 1;
}
if self.copyright.is_some() {
__n += 1;
}
if self.original_resource_uri.is_some() {
__n += 1;
}
if self.other_details.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "RESOURCE_DESCRIPTION_ITEM", __n)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"_type",
"RESOURCE_DESCRIPTION_ITEM",
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "language", &self.language)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "purpose", &self.purpose)?;
if let Some(__v) = &self.keywords
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "keywords", __v)?;
}
if let Some(__v) = &self.use_ {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "use", __v)?;
}
if let Some(__v) = &self.misuse {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "misuse", __v)?;
}
if let Some(__v) = &self.copyright {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "copyright", __v)?;
}
if let Some(__v) = &self.original_resource_uri {
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"original_resource_uri",
__v,
)?;
}
if let Some(__v) = &self.other_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "other_details", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::common::resource::resource_description_item::ResourceDescriptionItem
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"copyright",
"keywords",
"language",
"misuse",
"original_resource_uri",
"other_details",
"purpose",
"use",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"language" => ::core::result::Result::Ok(__Field::__F0),
"purpose" => ::core::result::Result::Ok(__Field::__F1),
"keywords" => ::core::result::Result::Ok(__Field::__F2),
"use" => ::core::result::Result::Ok(__Field::__F3),
"misuse" => ::core::result::Result::Ok(__Field::__F4),
"copyright" => ::core::result::Result::Ok(__Field::__F5),
"original_resource_uri" => ::core::result::Result::Ok(__Field::__F6),
"other_details" => ::core::result::Result::Ok(__Field::__F7),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"RESOURCE_DESCRIPTION_ITEM",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value =
crate::v1_1::common::resource::resource_description_item::ResourceDescriptionItem;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `RESOURCE_DESCRIPTION_ITEM` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<_> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType(
"RESOURCE_DESCRIPTION_ITEM",
),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("language"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("purpose"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("keywords"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("use"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("misuse"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("copyright"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("original_resource_uri"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_details"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::common::resource::resource_description_item::ResourceDescriptionItem {
language: __s0.flatten().ok_or_else(|| ::serde::de::Error::missing_field("language"))?,
purpose: __s1.flatten().ok_or_else(|| ::serde::de::Error::missing_field("purpose"))?,
keywords: __s2,
use_: __s3.flatten(),
misuse: __s4.flatten(),
copyright: __s5.flatten(),
original_resource_uri: __s6.flatten(),
other_details: __s7.flatten(),
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"RESOURCE_DESCRIPTION_ITEM",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::resource::resource_usage::ResourceUsage {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.description.is_some() {
__n += 1;
}
if self.reference.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "RESOURCE_USAGE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "RESOURCE_USAGE")?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"prospective",
&self.prospective,
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "actual", &self.actual)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "type", &self.r#type)?;
if let Some(__v) = &self.description {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "description", __v)?;
}
if let Some(__v) = &self.reference {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "reference", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::resource::resource_usage::ResourceUsage {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["actual", "description", "prospective", "reference", "type"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"prospective" => ::core::result::Result::Ok(__Field::__F0),
"actual" => ::core::result::Result::Ok(__Field::__F1),
"type" => ::core::result::Result::Ok(__Field::__F2),
"description" => ::core::result::Result::Ok(__Field::__F3),
"reference" => ::core::result::Result::Ok(__Field::__F4),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"RESOURCE_USAGE",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::resource::resource_usage::ResourceUsage;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `RESOURCE_USAGE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("RESOURCE_USAGE"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("prospective"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("actual"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("type"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("description"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("reference"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::resource::resource_usage::ResourceUsage {
prospective: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("prospective"))?,
actual: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("actual"))?,
r#type: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("type"))?,
description: __s3.flatten(),
reference: __s4.flatten(),
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"RESOURCE_USAGE",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::resource::resource_use::ResourceUse {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::resource::resource_use::ResourceUse::ConsumableUse(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::resource::resource_use::ResourceUse::ServiceUse(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::resource::resource_use::ResourceUse {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["CONSUMABLE_USE", "SERVICE_USE"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::resource::resource_use::ResourceUse;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `RESOURCE_USE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"CONSUMABLE_USE" => ::core::result::Result::Ok(
crate::v1_1::resource::resource_use::ResourceUse::ConsumableUse(
::serde::Deserialize::deserialize(__rest)?,
),
),
"SERVICE_USE" => ::core::result::Result::Ok(
crate::v1_1::resource::resource_use::ResourceUse::ServiceUse(
::serde::Deserialize::deserialize(__rest)?,
),
),
__other => ::core::result::Result::Err(
::openehr_base::serde_support::unexpected_type(
"RESOURCE_USE",
__other,
"CONSUMABLE_USE, SERVICE_USE",
),
),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"RESOURCE_USE",
&__other,
"CONSUMABLE_USE, SERVICE_USE",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"RESOURCE_USE",
"CONSUMABLE_USE, SERVICE_USE",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::common::generic::revision_history::RevisionHistory {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "REVISION_HISTORY", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "REVISION_HISTORY")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "items", &self.items)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::common::generic::revision_history::RevisionHistory
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["items"];
enum __Field {
__Type,
__F0,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"items" => ::core::result::Result::Ok(__Field::__F0),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"REVISION_HISTORY",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::common::generic::revision_history::RevisionHistory;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `REVISION_HISTORY` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("REVISION_HISTORY"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("items"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::common::generic::revision_history::RevisionHistory {
items: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("items"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"REVISION_HISTORY",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_1::common::generic::revision_history_item::RevisionHistoryItem
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "REVISION_HISTORY_ITEM", __n)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"_type",
"REVISION_HISTORY_ITEM",
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "version_id", &self.version_id)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "audits", &self.audits)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::common::generic::revision_history_item::RevisionHistoryItem
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["audits", "version_id"];
enum __Field {
__Type,
__F0,
__F1,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"version_id" => ::core::result::Result::Ok(__Field::__F0),
"audits" => ::core::result::Result::Ok(__Field::__F1),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"REVISION_HISTORY_ITEM",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::common::generic::revision_history_item::RevisionHistoryItem;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `REVISION_HISTORY_ITEM` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType(
"REVISION_HISTORY_ITEM",
),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("version_id"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("audits"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::common::generic::revision_history_item::RevisionHistoryItem {
version_id: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("version_id"))?,
audits: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("audits"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"REVISION_HISTORY_ITEM",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::demographic::role::Role {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 5usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.contacts.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.details.is_some() {
__n += 1;
}
if self
.reverse_relationships
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self
.relationships
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.time_validity.is_some() {
__n += 1;
}
if self
.capabilities
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "ROLE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ROLE")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "identities", &self.identities)?;
if let Some(__v) = &self.contacts
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "contacts", __v)?;
}
if let Some(__v) = &self.details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "details", __v)?;
}
if let Some(__v) = &self.reverse_relationships
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"reverse_relationships",
__v,
)?;
}
if let Some(__v) = &self.relationships
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "relationships", __v)?;
}
if let Some(__v) = &self.time_validity {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "time_validity", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "performer", &self.performer)?;
if let Some(__v) = &self.capabilities
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "capabilities", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::demographic::role::Role {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"capabilities",
"contacts",
"details",
"feeder_audit",
"identities",
"links",
"name",
"performer",
"relationships",
"reverse_relationships",
"time_validity",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
__F11,
__F12,
__F13,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"identities" => ::core::result::Result::Ok(__Field::__F6),
"contacts" => ::core::result::Result::Ok(__Field::__F7),
"details" => ::core::result::Result::Ok(__Field::__F8),
"reverse_relationships" => ::core::result::Result::Ok(__Field::__F9),
"relationships" => ::core::result::Result::Ok(__Field::__F10),
"time_validity" => ::core::result::Result::Ok(__Field::__F11),
"performer" => ::core::result::Result::Ok(__Field::__F12),
"capabilities" => ::core::result::Result::Ok(__Field::__F13),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(__v, "ROLE", __FIELDS),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::demographic::role::Role;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ROLE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<_> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<_> = None;
let mut __s10: ::core::option::Option<_> = None;
let mut __s11: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s12: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s13: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ROLE"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("identities"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("contacts"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("details"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("reverse_relationships"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("relationships"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F11 => {
if __s11.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_validity"),
);
}
__s11 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F12 => {
if __s12.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("performer"),
);
}
__s12 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F13 => {
if __s13.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("capabilities"),
);
}
__s13 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::demographic::role::Role {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
identities: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("identities"))?,
contacts: __s7,
details: __s8.flatten(),
reverse_relationships: __s9,
relationships: __s10,
time_validity: __s11.flatten(),
performer: __s12
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("performer"))?,
capabilities: __s13,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "ROLE", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::composition::content::navigation::section::Section {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.items.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "SECTION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "SECTION")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
if let Some(__v) = &self.items
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "items", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::composition::content::navigation::section::Section
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"feeder_audit",
"items",
"links",
"name",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"items" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "SECTION", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::composition::content::navigation::section::Section;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `SECTION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("SECTION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("items"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::composition::content::navigation::section::Section {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
items: __s6,
},
)
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "SECTION", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::resource::service_use::ServiceUse {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 1usize;
if self.cost_data.is_some() {
__n += 1;
}
if self.identifier.is_some() {
__n += 1;
}
if self.start_time.is_some() {
__n += 1;
}
if self.duration.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "SERVICE_USE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "SERVICE_USE")?;
if let Some(__v) = &self.cost_data {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "cost_data", __v)?;
}
if let Some(__v) = &self.identifier {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "identifier", __v)?;
}
if let Some(__v) = &self.start_time {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "start_time", __v)?;
}
if let Some(__v) = &self.duration {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "duration", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::resource::service_use::ServiceUse {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["cost_data", "duration", "identifier", "start_time"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"cost_data" => ::core::result::Result::Ok(__Field::__F0),
"identifier" => ::core::result::Result::Ok(__Field::__F1),
"start_time" => ::core::result::Result::Ok(__Field::__F2),
"duration" => ::core::result::Result::Ok(__Field::__F3),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"SERVICE_USE",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::resource::service_use::ServiceUse;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `SERVICE_USE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("SERVICE_USE"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("cost_data"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("identifier"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("start_time"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("duration"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::resource::service_use::ServiceUse {
cost_data: __s0.flatten(),
identifier: __s1.flatten(),
start_time: __s2.flatten(),
duration: __s3.flatten(),
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"SERVICE_USE",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::ehr_extract::sync_extract::sync_extract::SyncExtract {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self.items.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "SYNC_EXTRACT", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "SYNC_EXTRACT")?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"specification",
&self.specification,
)?;
if let Some(__v) = &self.items
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "items", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::ehr_extract::sync_extract::sync_extract::SyncExtract
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["items", "specification"];
enum __Field {
__Type,
__F0,
__F1,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"specification" => ::core::result::Result::Ok(__Field::__F0),
"items" => ::core::result::Result::Ok(__Field::__F1),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"SYNC_EXTRACT",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::ehr_extract::sync_extract::sync_extract::SyncExtract;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `SYNC_EXTRACT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("SYNC_EXTRACT"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("specification"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("items"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::ehr_extract::sync_extract::sync_extract::SyncExtract {
specification: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("specification"))?,
items: __s1,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"SYNC_EXTRACT",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_1::ehr_extract::sync_extract::sync_extract_request::SyncExtractRequest
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "SYNC_EXTRACT_REQUEST", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "SYNC_EXTRACT_REQUEST")?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"specification",
&self.specification,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::ehr_extract::sync_extract::sync_extract_request::SyncExtractRequest
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["specification"];
enum __Field {
__Type,
__F0,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"specification" => ::core::result::Result::Ok(__Field::__F0),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"SYNC_EXTRACT_REQUEST",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value =
crate::v1_1::ehr_extract::sync_extract::sync_extract_request::SyncExtractRequest;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `SYNC_EXTRACT_REQUEST` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("SYNC_EXTRACT_REQUEST"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("specification"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::ehr_extract::sync_extract::sync_extract_request::SyncExtractRequest {
specification: __s0.flatten().ok_or_else(|| ::serde::de::Error::missing_field("specification"))?,
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"SYNC_EXTRACT_REQUEST",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_1::ehr_extract::sync_extract::sync_extract_spec::SyncExtractSpec
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self
.contribution_list
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.contributions_since.is_some() {
__n += 1;
}
if self.all_contributions.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "SYNC_EXTRACT_SPEC", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "SYNC_EXTRACT_SPEC")?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"includes_versions",
&self.includes_versions,
)?;
if let Some(__v) = &self.contribution_list
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "contribution_list", __v)?;
}
if let Some(__v) = &self.contributions_since {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "contributions_since", __v)?;
}
if let Some(__v) = &self.all_contributions {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "all_contributions", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::ehr_extract::sync_extract::sync_extract_spec::SyncExtractSpec
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"all_contributions",
"contribution_list",
"contributions_since",
"includes_versions",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"includes_versions" => ::core::result::Result::Ok(__Field::__F0),
"contribution_list" => ::core::result::Result::Ok(__Field::__F1),
"contributions_since" => ::core::result::Result::Ok(__Field::__F2),
"all_contributions" => ::core::result::Result::Ok(__Field::__F3),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"SYNC_EXTRACT_SPEC",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::ehr_extract::sync_extract::sync_extract_spec::SyncExtractSpec;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `SYNC_EXTRACT_SPEC` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<_> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("SYNC_EXTRACT_SPEC"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("includes_versions"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("contribution_list"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("contributions_since"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("all_contributions"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::ehr_extract::sync_extract::sync_extract_spec::SyncExtractSpec {
includes_versions: __s0.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("includes_versions")
})?,
contribution_list: __s1,
contributions_since: __s2.flatten(),
all_contributions: __s3.flatten(),
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"SYNC_EXTRACT_SPEC",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_1::support::terminology::terminology_access::TerminologyAccess
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 1usize;
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "TERMINOLOGY_ACCESS", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "TERMINOLOGY_ACCESS")?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::support::terminology::terminology_access::TerminologyAccess
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[];
enum __Field {
__Type,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"TERMINOLOGY_ACCESS",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::support::terminology::terminology_access::TerminologyAccess;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `TERMINOLOGY_ACCESS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("TERMINOLOGY_ACCESS"),
)?;
}
}
}
::core::result::Result::Ok(
crate::v1_1::support::terminology::terminology_access::TerminologyAccess {},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"TERMINOLOGY_ACCESS",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_1::support::terminology::terminology_service::TerminologyService
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 1usize;
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "TERMINOLOGY_SERVICE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "TERMINOLOGY_SERVICE")?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::support::terminology::terminology_service::TerminologyService
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[];
enum __Field {
__Type,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"TERMINOLOGY_SERVICE",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::support::terminology::terminology_service::TerminologyService;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `TERMINOLOGY_SERVICE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("TERMINOLOGY_SERVICE"),
)?;
}
}
}
::core::result::Result::Ok(
crate::v1_1::support::terminology::terminology_service::TerminologyService {},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"TERMINOLOGY_SERVICE",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::data_types::text::term_mapping::TermMapping {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.purpose.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "TERM_MAPPING", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "TERM_MAPPING")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "match", &self.r#match)?;
if let Some(__v) = &self.purpose {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "purpose", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "target", &self.target)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::data_types::text::term_mapping::TermMapping {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["match", "purpose", "target"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"match" => ::core::result::Result::Ok(__Field::__F0),
"purpose" => ::core::result::Result::Ok(__Field::__F1),
"target" => ::core::result::Result::Ok(__Field::__F2),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"TERM_MAPPING",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::data_types::text::term_mapping::TermMapping;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `TERM_MAPPING` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("TERM_MAPPING"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("match"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("purpose"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("target"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::data_types::text::term_mapping::TermMapping {
r#match: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("match"))?,
purpose: __s1.flatten(),
target: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("target"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"TERM_MAPPING",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::common::resource::translation_details::TranslationDetails {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.accreditaton.is_some() {
__n += 1;
}
if self.other_details.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "TRANSLATION_DETAILS", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "TRANSLATION_DETAILS")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "language", &self.language)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "author", &self.author)?;
if let Some(__v) = &self.accreditaton {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "accreditaton", __v)?;
}
if let Some(__v) = &self.other_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "other_details", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::common::resource::translation_details::TranslationDetails
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["accreditaton", "author", "language", "other_details"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"language" => ::core::result::Result::Ok(__Field::__F0),
"author" => ::core::result::Result::Ok(__Field::__F1),
"accreditaton" => ::core::result::Result::Ok(__Field::__F2),
"other_details" => ::core::result::Result::Ok(__Field::__F3),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"TRANSLATION_DETAILS",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::common::resource::translation_details::TranslationDetails;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `TRANSLATION_DETAILS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("TRANSLATION_DETAILS"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("language"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("author"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("accreditaton"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_details"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::common::resource::translation_details::TranslationDetails {
language: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("language"))?,
author: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("author"))?,
accreditaton: __s2.flatten(),
other_details: __s3.flatten(),
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"TRANSLATION_DETAILS",
__FIELDS,
__Visitor,
)
}
}
impl<T: ::serde::Serialize> ::serde::Serialize
for crate::v1_1::common::change_control::version::Version<T>
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::common::change_control::version::Version::ImportedVersion(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::common::change_control::version::Version::OriginalVersion(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::Deserialize<'de>
for crate::v1_1::common::change_control::version::Version<T>
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["IMPORTED_VERSION", "ORIGINAL_VERSION"];
struct __Visitor<T>(::core::marker::PhantomData<(T,)>);
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::de::Visitor<'de> for __Visitor<T> {
type Value = crate::v1_1::common::change_control::version::Version<T>;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `VERSION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"IMPORTED_VERSION" => ::core::result::Result::Ok(crate::v1_1::common::change_control::version::Version::ImportedVersion(::serde::Deserialize::deserialize(__rest)?)),
"ORIGINAL_VERSION" => ::core::result::Result::Ok(crate::v1_1::common::change_control::version::Version::OriginalVersion(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("VERSION", __other, "IMPORTED_VERSION, ORIGINAL_VERSION")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"VERSION",
&__other,
"IMPORTED_VERSION, ORIGINAL_VERSION",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"VERSION",
"IMPORTED_VERSION, ORIGINAL_VERSION",
))
}
}
}
}
::serde::Deserializer::deserialize_map(
__deserializer,
__Visitor(::core::marker::PhantomData),
)
}
}
impl ::serde::Serialize for crate::v1_1::ehr::versioned_composition::VersionedComposition {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "VERSIONED_COMPOSITION", __n)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"_type",
"VERSIONED_COMPOSITION",
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "owner_id", &self.owner_id)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_created",
&self.time_created,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::ehr::versioned_composition::VersionedComposition
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["owner_id", "time_created", "uid"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"uid" => ::core::result::Result::Ok(__Field::__F0),
"owner_id" => ::core::result::Result::Ok(__Field::__F1),
"time_created" => ::core::result::Result::Ok(__Field::__F2),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"VERSIONED_COMPOSITION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::ehr::versioned_composition::VersionedComposition;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `VERSIONED_COMPOSITION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType(
"VERSIONED_COMPOSITION",
),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("owner_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_created"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::ehr::versioned_composition::VersionedComposition {
uid: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
owner_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("owner_id"))?,
time_created: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("time_created"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"VERSIONED_COMPOSITION",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::ehr::versioned_ehr_access::VersionedEhrAccess {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "VERSIONED_EHR_ACCESS", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "VERSIONED_EHR_ACCESS")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "owner_id", &self.owner_id)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_created",
&self.time_created,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::ehr::versioned_ehr_access::VersionedEhrAccess {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["owner_id", "time_created", "uid"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"uid" => ::core::result::Result::Ok(__Field::__F0),
"owner_id" => ::core::result::Result::Ok(__Field::__F1),
"time_created" => ::core::result::Result::Ok(__Field::__F2),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"VERSIONED_EHR_ACCESS",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::ehr::versioned_ehr_access::VersionedEhrAccess;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `VERSIONED_EHR_ACCESS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("VERSIONED_EHR_ACCESS"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("owner_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_created"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::ehr::versioned_ehr_access::VersionedEhrAccess {
uid: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
owner_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("owner_id"))?,
time_created: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("time_created"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"VERSIONED_EHR_ACCESS",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::ehr::versioned_ehr_status::VersionedEhrStatus {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "VERSIONED_EHR_STATUS", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "VERSIONED_EHR_STATUS")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "owner_id", &self.owner_id)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_created",
&self.time_created,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::ehr::versioned_ehr_status::VersionedEhrStatus {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["owner_id", "time_created", "uid"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"uid" => ::core::result::Result::Ok(__Field::__F0),
"owner_id" => ::core::result::Result::Ok(__Field::__F1),
"time_created" => ::core::result::Result::Ok(__Field::__F2),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"VERSIONED_EHR_STATUS",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::ehr::versioned_ehr_status::VersionedEhrStatus;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `VERSIONED_EHR_STATUS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("VERSIONED_EHR_STATUS"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("owner_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_created"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::ehr::versioned_ehr_status::VersionedEhrStatus {
uid: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
owner_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("owner_id"))?,
time_created: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("time_created"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"VERSIONED_EHR_STATUS",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::common::directory::versioned_folder::VersionedFolder {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "VERSIONED_FOLDER", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "VERSIONED_FOLDER")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "owner_id", &self.owner_id)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_created",
&self.time_created,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::common::directory::versioned_folder::VersionedFolder
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["owner_id", "time_created", "uid"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"uid" => ::core::result::Result::Ok(__Field::__F0),
"owner_id" => ::core::result::Result::Ok(__Field::__F1),
"time_created" => ::core::result::Result::Ok(__Field::__F2),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"VERSIONED_FOLDER",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::common::directory::versioned_folder::VersionedFolder;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `VERSIONED_FOLDER` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("VERSIONED_FOLDER"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("owner_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_created"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::common::directory::versioned_folder::VersionedFolder {
uid: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
owner_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("owner_id"))?,
time_created: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("time_created"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"VERSIONED_FOLDER",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_1::common::change_control::versioned_object::VersionedObjectData
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "VERSIONED_OBJECT", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "VERSIONED_OBJECT")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "owner_id", &self.owner_id)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_created",
&self.time_created,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::common::change_control::versioned_object::VersionedObjectData
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["owner_id", "time_created", "uid"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"uid" => ::core::result::Result::Ok(__Field::__F0),
"owner_id" => ::core::result::Result::Ok(__Field::__F1),
"time_created" => ::core::result::Result::Ok(__Field::__F2),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"VERSIONED_OBJECT",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::common::change_control::versioned_object::VersionedObjectData;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `VERSIONED_OBJECT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("VERSIONED_OBJECT"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("owner_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_created"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::common::change_control::versioned_object::VersionedObjectData {
uid: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
owner_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("owner_id"))?,
time_created: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("time_created"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"VERSIONED_OBJECT",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::common::change_control::versioned_object::VersionedObject {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::common::change_control::versioned_object::VersionedObject::VersionedComposition(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_1::common::change_control::versioned_object::VersionedObject::VersionedEhrAccess(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_1::common::change_control::versioned_object::VersionedObject::VersionedEhrStatus(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_1::common::change_control::versioned_object::VersionedObject::VersionedFolder(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_1::common::change_control::versioned_object::VersionedObject::VersionedParty(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_1::common::change_control::versioned_object::VersionedObject::VersionedObject(__x) => ::serde::Serialize::serialize(__x, __serializer),
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::common::change_control::versioned_object::VersionedObject
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &[
"VERSIONED_COMPOSITION",
"VERSIONED_EHR_ACCESS",
"VERSIONED_EHR_STATUS",
"VERSIONED_FOLDER",
"VERSIONED_OBJECT",
"VERSIONED_PARTY",
];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::common::change_control::versioned_object::VersionedObject;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `VERSIONED_OBJECT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"VERSIONED_COMPOSITION" => ::core::result::Result::Ok(crate::v1_1::common::change_control::versioned_object::VersionedObject::VersionedComposition(::serde::Deserialize::deserialize(__rest)?)),
"VERSIONED_EHR_ACCESS" => ::core::result::Result::Ok(crate::v1_1::common::change_control::versioned_object::VersionedObject::VersionedEhrAccess(::serde::Deserialize::deserialize(__rest)?)),
"VERSIONED_EHR_STATUS" => ::core::result::Result::Ok(crate::v1_1::common::change_control::versioned_object::VersionedObject::VersionedEhrStatus(::serde::Deserialize::deserialize(__rest)?)),
"VERSIONED_FOLDER" => ::core::result::Result::Ok(crate::v1_1::common::change_control::versioned_object::VersionedObject::VersionedFolder(::serde::Deserialize::deserialize(__rest)?)),
"VERSIONED_OBJECT" => ::core::result::Result::Ok(crate::v1_1::common::change_control::versioned_object::VersionedObject::VersionedObject(::serde::Deserialize::deserialize(__rest)?)),
"VERSIONED_PARTY" => ::core::result::Result::Ok(crate::v1_1::common::change_control::versioned_object::VersionedObject::VersionedParty(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("VERSIONED_OBJECT", __other, "VERSIONED_COMPOSITION, VERSIONED_EHR_ACCESS, VERSIONED_EHR_STATUS, VERSIONED_FOLDER, VERSIONED_OBJECT, VERSIONED_PARTY")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"VERSIONED_OBJECT",
&__other,
"VERSIONED_COMPOSITION, VERSIONED_EHR_ACCESS, VERSIONED_EHR_STATUS, VERSIONED_FOLDER, VERSIONED_OBJECT, VERSIONED_PARTY",
))
}
None => {
let __rest =
::openehr_base::serde_support::TaggedRest::new(None, __buffered, __map);
::core::result::Result::Ok(crate::v1_1::common::change_control::versioned_object::VersionedObject::VersionedObject(::serde::Deserialize::deserialize(__rest)?))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::demographic::versioned_party::VersionedParty {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "VERSIONED_PARTY", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "VERSIONED_PARTY")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "owner_id", &self.owner_id)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_created",
&self.time_created,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::demographic::versioned_party::VersionedParty {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["owner_id", "time_created", "uid"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"uid" => ::core::result::Result::Ok(__Field::__F0),
"owner_id" => ::core::result::Result::Ok(__Field::__F1),
"time_created" => ::core::result::Result::Ok(__Field::__F2),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"VERSIONED_PARTY",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::demographic::versioned_party::VersionedParty;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `VERSIONED_PARTY` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("VERSIONED_PARTY"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("owner_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_created"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::demographic::versioned_party::VersionedParty {
uid: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
owner_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("owner_id"))?,
time_created: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("time_created"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"VERSIONED_PARTY",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::composition::view::view_entry::ViewEntry {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::composition::view::view_entry::ViewEntry::Citation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::composition::view::view_entry::ViewEntry {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["CITATION"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::composition::view::view_entry::ViewEntry;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `VIEW_ENTRY` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"CITATION" => ::core::result::Result::Ok(
crate::v1_1::composition::view::view_entry::ViewEntry::Citation(
::serde::Deserialize::deserialize(__rest)?,
),
),
__other => ::core::result::Result::Err(
::openehr_base::serde_support::unexpected_type(
"VIEW_ENTRY",
__other,
"CITATION",
),
),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"VIEW_ENTRY",
&__other,
"CITATION",
))
}
None => ::core::result::Result::Err(
::openehr_base::serde_support::missing_type("VIEW_ENTRY", "CITATION"),
),
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::composition::view::view_item::ViewItem {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::composition::view::view_item::ViewItem::Citation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_1::composition::view::view_item::ViewItem::ViewSection(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::composition::view::view_item::ViewItem {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["CITATION", "VIEW_SECTION"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::composition::view::view_item::ViewItem;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `VIEW_ITEM` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"CITATION" => ::core::result::Result::Ok(
crate::v1_1::composition::view::view_item::ViewItem::Citation(
::serde::Deserialize::deserialize(__rest)?,
),
),
"VIEW_SECTION" => ::core::result::Result::Ok(
crate::v1_1::composition::view::view_item::ViewItem::ViewSection(
::serde::Deserialize::deserialize(__rest)?,
),
),
__other => ::core::result::Result::Err(
::openehr_base::serde_support::unexpected_type(
"VIEW_ITEM",
__other,
"CITATION, VIEW_SECTION",
),
),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"VIEW_ITEM",
&__other,
"CITATION, VIEW_SECTION",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"VIEW_ITEM",
"CITATION, VIEW_SECTION",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_1::composition::view::view_section::ViewSection {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.meta_data.is_some() {
__n += 1;
}
if self.items.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "VIEW_SECTION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "VIEW_SECTION")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
if let Some(__v) = &self.meta_data {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "meta_data", __v)?;
}
if let Some(__v) = &self.items
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "items", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::composition::view::view_section::ViewSection {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"feeder_audit",
"items",
"links",
"meta_data",
"name",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"meta_data" => ::core::result::Result::Ok(__Field::__F6),
"items" => ::core::result::Result::Ok(__Field::__F7),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"VIEW_SECTION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::composition::view::view_section::ViewSection;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `VIEW_SECTION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("VIEW_SECTION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("meta_data"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("items"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::composition::view::view_section::ViewSection {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
meta_data: __s6.flatten(),
items: __s7,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"VIEW_SECTION",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_1::composition::view::view_status::ViewStatus {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
::serde::Serializer::serialize_str(__serializer, self.as_str())
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_1::composition::view::view_status::ViewStatus {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __V;
impl<'de> ::serde::de::Visitor<'de> for __V {
type Value = crate::v1_1::composition::view::view_status::ViewStatus;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("a `ViewStatus` token")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<Self::Value, __E> {
::core::result::Result::Ok(
crate::v1_1::composition::view::view_status::ViewStatus::from_wire(__v),
)
}
}
::serde::Deserializer::deserialize_str(__deserializer, __V)
}
}
impl ::serde::Serialize for crate::v1_1::ehr_extract::sync_extract::x_contribution::XContribution {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.versions.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "X_CONTRIBUTION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "X_CONTRIBUTION")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "audit", &self.audit)?;
if let Some(__v) = &self.versions
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "versions", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::ehr_extract::sync_extract::x_contribution::XContribution
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["audit", "uid", "versions"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"uid" => ::core::result::Result::Ok(__Field::__F0),
"audit" => ::core::result::Result::Ok(__Field::__F1),
"versions" => ::core::result::Result::Ok(__Field::__F2),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"X_CONTRIBUTION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::ehr_extract::sync_extract::x_contribution::XContribution;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `X_CONTRIBUTION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("X_CONTRIBUTION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("audit"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("versions"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::ehr_extract::sync_extract::x_contribution::XContribution {
uid: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
audit: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("audit"))?,
versions: __s2,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"X_CONTRIBUTION",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_1::ehr_extract::openehr_extract::x_versioned_composition::XVersionedComposition
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 6usize;
if self.revision_history.is_some() {
__n += 1;
}
if self.versions.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "X_VERSIONED_COMPOSITION", __n)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"_type",
"X_VERSIONED_COMPOSITION",
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "owner_id", &self.owner_id)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_created",
&self.time_created,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"total_version_count",
&self.total_version_count,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"extract_version_count",
&self.extract_version_count,
)?;
if let Some(__v) = &self.revision_history {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "revision_history", __v)?;
}
if let Some(__v) = &self.versions
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "versions", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::ehr_extract::openehr_extract::x_versioned_composition::XVersionedComposition
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"extract_version_count",
"owner_id",
"revision_history",
"time_created",
"total_version_count",
"uid",
"versions",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"uid" => ::core::result::Result::Ok(__Field::__F0),
"owner_id" => ::core::result::Result::Ok(__Field::__F1),
"time_created" => ::core::result::Result::Ok(__Field::__F2),
"total_version_count" => ::core::result::Result::Ok(__Field::__F3),
"extract_version_count" => ::core::result::Result::Ok(__Field::__F4),
"revision_history" => ::core::result::Result::Ok(__Field::__F5),
"versions" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"X_VERSIONED_COMPOSITION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::ehr_extract::openehr_extract::x_versioned_composition::XVersionedComposition;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `X_VERSIONED_COMPOSITION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType(
"X_VERSIONED_COMPOSITION",
),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("owner_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_created"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("total_version_count"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("extract_version_count"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("revision_history"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("versions"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::ehr_extract::openehr_extract::x_versioned_composition::XVersionedComposition {
uid: __s0.flatten().ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
owner_id: __s1.flatten().ok_or_else(|| ::serde::de::Error::missing_field("owner_id"))?,
time_created: __s2.flatten().ok_or_else(|| ::serde::de::Error::missing_field("time_created"))?,
total_version_count: __s3.flatten().ok_or_else(|| ::serde::de::Error::missing_field("total_version_count"))?,
extract_version_count: __s4.flatten().ok_or_else(|| ::serde::de::Error::missing_field("extract_version_count"))?,
revision_history: __s5.flatten(),
versions: __s6,
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"X_VERSIONED_COMPOSITION",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_1::ehr_extract::openehr_extract::x_versioned_ehr_access::XVersionedEhrAccess
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 6usize;
if self.revision_history.is_some() {
__n += 1;
}
if self.versions.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "X_VERSIONED_EHR_ACCESS", __n)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"_type",
"X_VERSIONED_EHR_ACCESS",
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "owner_id", &self.owner_id)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_created",
&self.time_created,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"total_version_count",
&self.total_version_count,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"extract_version_count",
&self.extract_version_count,
)?;
if let Some(__v) = &self.revision_history {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "revision_history", __v)?;
}
if let Some(__v) = &self.versions
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "versions", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::ehr_extract::openehr_extract::x_versioned_ehr_access::XVersionedEhrAccess
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"extract_version_count",
"owner_id",
"revision_history",
"time_created",
"total_version_count",
"uid",
"versions",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"uid" => ::core::result::Result::Ok(__Field::__F0),
"owner_id" => ::core::result::Result::Ok(__Field::__F1),
"time_created" => ::core::result::Result::Ok(__Field::__F2),
"total_version_count" => ::core::result::Result::Ok(__Field::__F3),
"extract_version_count" => ::core::result::Result::Ok(__Field::__F4),
"revision_history" => ::core::result::Result::Ok(__Field::__F5),
"versions" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"X_VERSIONED_EHR_ACCESS",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::ehr_extract::openehr_extract::x_versioned_ehr_access::XVersionedEhrAccess;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `X_VERSIONED_EHR_ACCESS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType(
"X_VERSIONED_EHR_ACCESS",
),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("owner_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_created"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("total_version_count"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("extract_version_count"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("revision_history"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("versions"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::ehr_extract::openehr_extract::x_versioned_ehr_access::XVersionedEhrAccess {
uid: __s0.flatten().ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
owner_id: __s1.flatten().ok_or_else(|| ::serde::de::Error::missing_field("owner_id"))?,
time_created: __s2.flatten().ok_or_else(|| ::serde::de::Error::missing_field("time_created"))?,
total_version_count: __s3.flatten().ok_or_else(|| ::serde::de::Error::missing_field("total_version_count"))?,
extract_version_count: __s4.flatten().ok_or_else(|| ::serde::de::Error::missing_field("extract_version_count"))?,
revision_history: __s5.flatten(),
versions: __s6,
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"X_VERSIONED_EHR_ACCESS",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_1::ehr_extract::openehr_extract::x_versioned_ehr_status::XVersionedEhrStatus
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 6usize;
if self.revision_history.is_some() {
__n += 1;
}
if self.versions.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "X_VERSIONED_EHR_STATUS", __n)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"_type",
"X_VERSIONED_EHR_STATUS",
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "owner_id", &self.owner_id)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_created",
&self.time_created,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"total_version_count",
&self.total_version_count,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"extract_version_count",
&self.extract_version_count,
)?;
if let Some(__v) = &self.revision_history {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "revision_history", __v)?;
}
if let Some(__v) = &self.versions
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "versions", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::ehr_extract::openehr_extract::x_versioned_ehr_status::XVersionedEhrStatus
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"extract_version_count",
"owner_id",
"revision_history",
"time_created",
"total_version_count",
"uid",
"versions",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"uid" => ::core::result::Result::Ok(__Field::__F0),
"owner_id" => ::core::result::Result::Ok(__Field::__F1),
"time_created" => ::core::result::Result::Ok(__Field::__F2),
"total_version_count" => ::core::result::Result::Ok(__Field::__F3),
"extract_version_count" => ::core::result::Result::Ok(__Field::__F4),
"revision_history" => ::core::result::Result::Ok(__Field::__F5),
"versions" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"X_VERSIONED_EHR_STATUS",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_1::ehr_extract::openehr_extract::x_versioned_ehr_status::XVersionedEhrStatus;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `X_VERSIONED_EHR_STATUS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType(
"X_VERSIONED_EHR_STATUS",
),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("owner_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_created"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("total_version_count"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("extract_version_count"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("revision_history"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("versions"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::ehr_extract::openehr_extract::x_versioned_ehr_status::XVersionedEhrStatus {
uid: __s0.flatten().ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
owner_id: __s1.flatten().ok_or_else(|| ::serde::de::Error::missing_field("owner_id"))?,
time_created: __s2.flatten().ok_or_else(|| ::serde::de::Error::missing_field("time_created"))?,
total_version_count: __s3.flatten().ok_or_else(|| ::serde::de::Error::missing_field("total_version_count"))?,
extract_version_count: __s4.flatten().ok_or_else(|| ::serde::de::Error::missing_field("extract_version_count"))?,
revision_history: __s5.flatten(),
versions: __s6,
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"X_VERSIONED_EHR_STATUS",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_1::ehr_extract::openehr_extract::x_versioned_folder::XVersionedFolder
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 6usize;
if self.revision_history.is_some() {
__n += 1;
}
if self.versions.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "X_VERSIONED_FOLDER", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "X_VERSIONED_FOLDER")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "owner_id", &self.owner_id)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_created",
&self.time_created,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"total_version_count",
&self.total_version_count,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"extract_version_count",
&self.extract_version_count,
)?;
if let Some(__v) = &self.revision_history {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "revision_history", __v)?;
}
if let Some(__v) = &self.versions
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "versions", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::ehr_extract::openehr_extract::x_versioned_folder::XVersionedFolder
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"extract_version_count",
"owner_id",
"revision_history",
"time_created",
"total_version_count",
"uid",
"versions",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"uid" => ::core::result::Result::Ok(__Field::__F0),
"owner_id" => ::core::result::Result::Ok(__Field::__F1),
"time_created" => ::core::result::Result::Ok(__Field::__F2),
"total_version_count" => ::core::result::Result::Ok(__Field::__F3),
"extract_version_count" => ::core::result::Result::Ok(__Field::__F4),
"revision_history" => ::core::result::Result::Ok(__Field::__F5),
"versions" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"X_VERSIONED_FOLDER",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value =
crate::v1_1::ehr_extract::openehr_extract::x_versioned_folder::XVersionedFolder;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `X_VERSIONED_FOLDER` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("X_VERSIONED_FOLDER"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("owner_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_created"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("total_version_count"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("extract_version_count"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("revision_history"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("versions"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::ehr_extract::openehr_extract::x_versioned_folder::XVersionedFolder {
uid: __s0.flatten().ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
owner_id: __s1.flatten().ok_or_else(|| ::serde::de::Error::missing_field("owner_id"))?,
time_created: __s2.flatten().ok_or_else(|| ::serde::de::Error::missing_field("time_created"))?,
total_version_count: __s3.flatten().ok_or_else(|| ::serde::de::Error::missing_field("total_version_count"))?,
extract_version_count: __s4.flatten().ok_or_else(|| ::serde::de::Error::missing_field("extract_version_count"))?,
revision_history: __s5.flatten(),
versions: __s6,
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"X_VERSIONED_FOLDER",
__FIELDS,
__Visitor,
)
}
}
impl<T: ::serde::Serialize> ::serde::Serialize
for crate::v1_1::ehr_extract::openehr_extract::x_versioned_object::XVersionedObjectData<T>
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 6usize;
if self.revision_history.is_some() {
__n += 1;
}
if self.versions.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "X_VERSIONED_OBJECT", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "X_VERSIONED_OBJECT")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "owner_id", &self.owner_id)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_created",
&self.time_created,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"total_version_count",
&self.total_version_count,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"extract_version_count",
&self.extract_version_count,
)?;
if let Some(__v) = &self.revision_history {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "revision_history", __v)?;
}
if let Some(__v) = &self.versions
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "versions", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::Deserialize<'de>
for crate::v1_1::ehr_extract::openehr_extract::x_versioned_object::XVersionedObjectData<T>
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"extract_version_count",
"owner_id",
"revision_history",
"time_created",
"total_version_count",
"uid",
"versions",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"uid" => ::core::result::Result::Ok(__Field::__F0),
"owner_id" => ::core::result::Result::Ok(__Field::__F1),
"time_created" => ::core::result::Result::Ok(__Field::__F2),
"total_version_count" => ::core::result::Result::Ok(__Field::__F3),
"extract_version_count" => ::core::result::Result::Ok(__Field::__F4),
"revision_history" => ::core::result::Result::Ok(__Field::__F5),
"versions" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"X_VERSIONED_OBJECT",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor<T>(::core::marker::PhantomData<(T,)>);
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::de::Visitor<'de> for __Visitor<T> {
type Value =
crate::v1_1::ehr_extract::openehr_extract::x_versioned_object::XVersionedObjectData<
T,
>;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `X_VERSIONED_OBJECT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("X_VERSIONED_OBJECT"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("owner_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_created"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("total_version_count"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("extract_version_count"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("revision_history"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("versions"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_1::ehr_extract::openehr_extract::x_versioned_object::XVersionedObjectData {
uid: __s0.flatten().ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
owner_id: __s1.flatten().ok_or_else(|| ::serde::de::Error::missing_field("owner_id"))?,
time_created: __s2.flatten().ok_or_else(|| ::serde::de::Error::missing_field("time_created"))?,
total_version_count: __s3.flatten().ok_or_else(|| ::serde::de::Error::missing_field("total_version_count"))?,
extract_version_count: __s4.flatten().ok_or_else(|| ::serde::de::Error::missing_field("extract_version_count"))?,
revision_history: __s5.flatten(),
versions: __s6,
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"X_VERSIONED_OBJECT",
__FIELDS,
__Visitor(::core::marker::PhantomData),
)
}
}
impl<T: ::serde::Serialize> ::serde::Serialize
for crate::v1_1::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject<T>
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_1::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject::XVersionedComposition(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_1::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject::XVersionedEhrAccess(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_1::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject::XVersionedEhrStatus(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_1::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject::XVersionedFolder(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_1::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject::XVersionedParty(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_1::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject::XVersionedObject(__x) => ::serde::Serialize::serialize(__x, __serializer),
}
}
}
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::Deserialize<'de>
for crate::v1_1::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject<T>
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &[
"X_VERSIONED_COMPOSITION",
"X_VERSIONED_EHR_ACCESS",
"X_VERSIONED_EHR_STATUS",
"X_VERSIONED_FOLDER",
"X_VERSIONED_OBJECT",
"X_VERSIONED_PARTY",
];
struct __Visitor<T>(::core::marker::PhantomData<(T,)>);
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::de::Visitor<'de> for __Visitor<T> {
type Value =
crate::v1_1::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject<T>;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `X_VERSIONED_OBJECT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"X_VERSIONED_COMPOSITION" => ::core::result::Result::Ok(crate::v1_1::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject::XVersionedComposition(::serde::Deserialize::deserialize(__rest)?)),
"X_VERSIONED_EHR_ACCESS" => ::core::result::Result::Ok(crate::v1_1::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject::XVersionedEhrAccess(::serde::Deserialize::deserialize(__rest)?)),
"X_VERSIONED_EHR_STATUS" => ::core::result::Result::Ok(crate::v1_1::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject::XVersionedEhrStatus(::serde::Deserialize::deserialize(__rest)?)),
"X_VERSIONED_FOLDER" => ::core::result::Result::Ok(crate::v1_1::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject::XVersionedFolder(::serde::Deserialize::deserialize(__rest)?)),
"X_VERSIONED_OBJECT" => ::core::result::Result::Ok(crate::v1_1::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject::XVersionedObject(::serde::Deserialize::deserialize(__rest)?)),
"X_VERSIONED_PARTY" => ::core::result::Result::Ok(crate::v1_1::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject::XVersionedParty(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("X_VERSIONED_OBJECT", __other, "X_VERSIONED_COMPOSITION, X_VERSIONED_EHR_ACCESS, X_VERSIONED_EHR_STATUS, X_VERSIONED_FOLDER, X_VERSIONED_OBJECT, X_VERSIONED_PARTY")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"X_VERSIONED_OBJECT",
&__other,
"X_VERSIONED_COMPOSITION, X_VERSIONED_EHR_ACCESS, X_VERSIONED_EHR_STATUS, X_VERSIONED_FOLDER, X_VERSIONED_OBJECT, X_VERSIONED_PARTY",
))
}
None => {
let __rest =
::openehr_base::serde_support::TaggedRest::new(None, __buffered, __map);
::core::result::Result::Ok(crate::v1_1::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject::XVersionedObject(::serde::Deserialize::deserialize(__rest)?))
}
}
}
}
::serde::Deserializer::deserialize_map(
__deserializer,
__Visitor(::core::marker::PhantomData),
)
}
}
impl ::serde::Serialize
for crate::v1_1::ehr_extract::openehr_extract::x_versioned_party::XVersionedParty
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 6usize;
if self.revision_history.is_some() {
__n += 1;
}
if self.versions.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "X_VERSIONED_PARTY", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "X_VERSIONED_PARTY")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "owner_id", &self.owner_id)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_created",
&self.time_created,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"total_version_count",
&self.total_version_count,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"extract_version_count",
&self.extract_version_count,
)?;
if let Some(__v) = &self.revision_history {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "revision_history", __v)?;
}
if let Some(__v) = &self.versions
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "versions", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_1::ehr_extract::openehr_extract::x_versioned_party::XVersionedParty
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"extract_version_count",
"owner_id",
"revision_history",
"time_created",
"total_version_count",
"uid",
"versions",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"uid" => ::core::result::Result::Ok(__Field::__F0),
"owner_id" => ::core::result::Result::Ok(__Field::__F1),
"time_created" => ::core::result::Result::Ok(__Field::__F2),
"total_version_count" => ::core::result::Result::Ok(__Field::__F3),
"extract_version_count" => ::core::result::Result::Ok(__Field::__F4),
"revision_history" => ::core::result::Result::Ok(__Field::__F5),
"versions" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"X_VERSIONED_PARTY",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value =
crate::v1_1::ehr_extract::openehr_extract::x_versioned_party::XVersionedParty;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `X_VERSIONED_PARTY` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("X_VERSIONED_PARTY"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("owner_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_created"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("total_version_count"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("extract_version_count"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("revision_history"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("versions"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_1::ehr_extract::openehr_extract::x_versioned_party::XVersionedParty {
uid: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
owner_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("owner_id"))?,
time_created: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("time_created"))?,
total_version_count: __s3.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("total_version_count")
})?,
extract_version_count: __s4.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("extract_version_count")
})?,
revision_history: __s5.flatten(),
versions: __s6,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"X_VERSIONED_PARTY",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::composition::content::entry::action::Action {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 9usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self
.other_participations
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.workflow_id.is_some() {
__n += 1;
}
if self.provider.is_some() {
__n += 1;
}
if self.protocol.is_some() {
__n += 1;
}
if self.guideline_id.is_some() {
__n += 1;
}
if self.instruction_details.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "ACTION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ACTION")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "language", &self.language)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "encoding", &self.encoding)?;
if let Some(__v) = &self.other_participations
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "other_participations", __v)?;
}
if let Some(__v) = &self.workflow_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "workflow_id", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "subject", &self.subject)?;
if let Some(__v) = &self.provider {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "provider", __v)?;
}
if let Some(__v) = &self.protocol {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "protocol", __v)?;
}
if let Some(__v) = &self.guideline_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "guideline_id", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "time", &self.time)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"ism_transition",
&self.ism_transition,
)?;
if let Some(__v) = &self.instruction_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "instruction_details", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"description",
&self.description,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::composition::content::entry::action::Action {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"description",
"encoding",
"feeder_audit",
"guideline_id",
"instruction_details",
"ism_transition",
"language",
"links",
"name",
"other_participations",
"protocol",
"provider",
"subject",
"time",
"uid",
"workflow_id",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
__F11,
__F12,
__F13,
__F14,
__F15,
__F16,
__F17,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"language" => ::core::result::Result::Ok(__Field::__F6),
"encoding" => ::core::result::Result::Ok(__Field::__F7),
"other_participations" => ::core::result::Result::Ok(__Field::__F8),
"workflow_id" => ::core::result::Result::Ok(__Field::__F9),
"subject" => ::core::result::Result::Ok(__Field::__F10),
"provider" => ::core::result::Result::Ok(__Field::__F11),
"protocol" => ::core::result::Result::Ok(__Field::__F12),
"guideline_id" => ::core::result::Result::Ok(__Field::__F13),
"time" => ::core::result::Result::Ok(__Field::__F14),
"ism_transition" => ::core::result::Result::Ok(__Field::__F15),
"instruction_details" => ::core::result::Result::Ok(__Field::__F16),
"description" => ::core::result::Result::Ok(__Field::__F17),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "ACTION", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::composition::content::entry::action::Action;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ACTION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<_> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s10: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s11: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s12: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s13: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s14: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s15: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s16: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s17: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ACTION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("language"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("encoding"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_participations"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("workflow_id"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("subject"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F11 => {
if __s11.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("provider"),
);
}
__s11 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F12 => {
if __s12.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("protocol"),
);
}
__s12 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F13 => {
if __s13.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("guideline_id"),
);
}
__s13 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F14 => {
if __s14.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time"),
);
}
__s14 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F15 => {
if __s15.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("ism_transition"),
);
}
__s15 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F16 => {
if __s16.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("instruction_details"),
);
}
__s16 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F17 => {
if __s17.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("description"),
);
}
__s17 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::composition::content::entry::action::Action {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
language: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("language"))?,
encoding: __s7
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("encoding"))?,
other_participations: __s8,
workflow_id: __s9.flatten(),
subject: __s10
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("subject"))?,
provider: __s11.flatten(),
protocol: __s12.flatten(),
guideline_id: __s13.flatten(),
time: __s14
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("time"))?,
ism_transition: __s15
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("ism_transition"))?,
instruction_details: __s16.flatten(),
description: __s17
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("description"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "ACTION", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::composition::content::entry::activity::Activity {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 5usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.timing.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "ACTIVITY", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ACTIVITY")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
if let Some(__v) = &self.timing {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "timing", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"action_archetype_id",
&self.action_archetype_id,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"description",
&self.description,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::composition::content::entry::activity::Activity
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"action_archetype_id",
"archetype_details",
"archetype_node_id",
"description",
"feeder_audit",
"links",
"name",
"timing",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"timing" => ::core::result::Result::Ok(__Field::__F6),
"action_archetype_id" => ::core::result::Result::Ok(__Field::__F7),
"description" => ::core::result::Result::Ok(__Field::__F8),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "ACTIVITY", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::composition::content::entry::activity::Activity;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ACTIVITY` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ACTIVITY"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("timing"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("action_archetype_id"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("description"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::composition::content::entry::activity::Activity {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
timing: __s6.flatten(),
action_archetype_id: __s7.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("action_archetype_id")
})?,
description: __s8
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("description"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "ACTIVITY", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::demographic::actor::Actor {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::demographic::actor::Actor::Agent(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::demographic::actor::Actor::Group(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::demographic::actor::Actor::Organisation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::demographic::actor::Actor::Person(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::demographic::actor::Actor {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["AGENT", "GROUP", "ORGANISATION", "PERSON"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::demographic::actor::Actor;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ACTOR` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"AGENT" => ::core::result::Result::Ok(
crate::v1_2::demographic::actor::Actor::Agent(
::serde::Deserialize::deserialize(__rest)?,
),
),
"GROUP" => ::core::result::Result::Ok(
crate::v1_2::demographic::actor::Actor::Group(
::serde::Deserialize::deserialize(__rest)?,
),
),
"ORGANISATION" => ::core::result::Result::Ok(
crate::v1_2::demographic::actor::Actor::Organisation(
::serde::Deserialize::deserialize(__rest)?,
),
),
"PERSON" => ::core::result::Result::Ok(
crate::v1_2::demographic::actor::Actor::Person(
::serde::Deserialize::deserialize(__rest)?,
),
),
__other => ::core::result::Result::Err(
::openehr_base::serde_support::unexpected_type(
"ACTOR",
__other,
"AGENT, GROUP, ORGANISATION, PERSON",
),
),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"ACTOR",
&__other,
"AGENT, GROUP, ORGANISATION, PERSON",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"ACTOR",
"AGENT, GROUP, ORGANISATION, PERSON",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::demographic::address::Address {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "ADDRESS", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ADDRESS")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "details", &self.details)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::demographic::address::Address {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"details",
"feeder_audit",
"links",
"name",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"details" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "ADDRESS", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::demographic::address::Address;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ADDRESS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ADDRESS"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("details"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::demographic::address::Address {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
details: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("details"))?,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "ADDRESS", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::ehr_extract::message::addressed_message::AddressedMessage {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 5usize;
if self.urgency.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "ADDRESSED_MESSAGE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ADDRESSED_MESSAGE")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "sender", &self.sender)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"sender_reference",
&self.sender_reference,
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "addressees", &self.addressees)?;
if let Some(__v) = &self.urgency {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "urgency", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "message", &self.message)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::ehr_extract::message::addressed_message::AddressedMessage
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"addressees",
"message",
"sender",
"sender_reference",
"urgency",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"sender" => ::core::result::Result::Ok(__Field::__F0),
"sender_reference" => ::core::result::Result::Ok(__Field::__F1),
"addressees" => ::core::result::Result::Ok(__Field::__F2),
"urgency" => ::core::result::Result::Ok(__Field::__F3),
"message" => ::core::result::Result::Ok(__Field::__F4),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"ADDRESSED_MESSAGE",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::ehr_extract::message::addressed_message::AddressedMessage;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ADDRESSED_MESSAGE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ADDRESSED_MESSAGE"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("sender"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("sender_reference"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("addressees"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("urgency"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("message"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::ehr_extract::message::addressed_message::AddressedMessage {
sender: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("sender"))?,
sender_reference: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("sender_reference"))?,
addressees: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("addressees"))?,
urgency: __s3.flatten(),
message: __s4
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("message"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"ADDRESSED_MESSAGE",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::composition::content::entry::admin_entry::AdminEntry {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 7usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self
.other_participations
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.workflow_id.is_some() {
__n += 1;
}
if self.provider.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "ADMIN_ENTRY", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ADMIN_ENTRY")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "language", &self.language)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "encoding", &self.encoding)?;
if let Some(__v) = &self.other_participations
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "other_participations", __v)?;
}
if let Some(__v) = &self.workflow_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "workflow_id", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "subject", &self.subject)?;
if let Some(__v) = &self.provider {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "provider", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "data", &self.data)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::composition::content::entry::admin_entry::AdminEntry
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"data",
"encoding",
"feeder_audit",
"language",
"links",
"name",
"other_participations",
"provider",
"subject",
"uid",
"workflow_id",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
__F11,
__F12,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"language" => ::core::result::Result::Ok(__Field::__F6),
"encoding" => ::core::result::Result::Ok(__Field::__F7),
"other_participations" => ::core::result::Result::Ok(__Field::__F8),
"workflow_id" => ::core::result::Result::Ok(__Field::__F9),
"subject" => ::core::result::Result::Ok(__Field::__F10),
"provider" => ::core::result::Result::Ok(__Field::__F11),
"data" => ::core::result::Result::Ok(__Field::__F12),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"ADMIN_ENTRY",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::composition::content::entry::admin_entry::AdminEntry;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ADMIN_ENTRY` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<_> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s10: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s11: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s12: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ADMIN_ENTRY"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("language"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("encoding"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_participations"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("workflow_id"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("subject"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F11 => {
if __s11.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("provider"),
);
}
__s11 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F12 => {
if __s12.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("data"),
);
}
__s12 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::composition::content::entry::admin_entry::AdminEntry {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
language: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("language"))?,
encoding: __s7
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("encoding"))?,
other_participations: __s8,
workflow_id: __s9.flatten(),
subject: __s10
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("subject"))?,
provider: __s11.flatten(),
data: __s12
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("data"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"ADMIN_ENTRY",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::demographic::agent::Agent {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.contacts.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.details.is_some() {
__n += 1;
}
if self
.relationships
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.languages.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.roles.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "AGENT", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "AGENT")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "identities", &self.identities)?;
if let Some(__v) = &self.contacts
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "contacts", __v)?;
}
if let Some(__v) = &self.details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "details", __v)?;
}
if let Some(__v) = &self.relationships
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "relationships", __v)?;
}
if let Some(__v) = &self.languages
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "languages", __v)?;
}
if let Some(__v) = &self.roles
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "roles", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::demographic::agent::Agent {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"contacts",
"details",
"feeder_audit",
"identities",
"languages",
"links",
"name",
"relationships",
"roles",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
__F11,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"identities" => ::core::result::Result::Ok(__Field::__F6),
"contacts" => ::core::result::Result::Ok(__Field::__F7),
"details" => ::core::result::Result::Ok(__Field::__F8),
"relationships" => ::core::result::Result::Ok(__Field::__F9),
"languages" => ::core::result::Result::Ok(__Field::__F10),
"roles" => ::core::result::Result::Ok(__Field::__F11),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "AGENT", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::demographic::agent::Agent;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `AGENT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<_> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<_> = None;
let mut __s10: ::core::option::Option<_> = None;
let mut __s11: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("AGENT"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("identities"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("contacts"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("details"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("relationships"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("languages"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F11 => {
if __s11.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("roles"),
);
}
__s11 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::demographic::agent::Agent {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
identities: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("identities"))?,
contacts: __s7,
details: __s8.flatten(),
relationships: __s9,
languages: ::openehr_base::serde_support::refuse_empty_list(
__s10,
"languages",
)?,
roles: __s11,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "AGENT", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::common::archetyped::archetyped::Archetyped {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.template_id.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "ARCHETYPED", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ARCHETYPED")?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_id",
&self.archetype_id,
)?;
if let Some(__v) = &self.template_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "template_id", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "rm_version", &self.rm_version)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::common::archetyped::archetyped::Archetyped {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["archetype_id", "rm_version", "template_id"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"archetype_id" => ::core::result::Result::Ok(__Field::__F0),
"template_id" => ::core::result::Result::Ok(__Field::__F1),
"rm_version" => ::core::result::Result::Ok(__Field::__F2),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"ARCHETYPED",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::common::archetyped::archetyped::Archetyped;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ARCHETYPED` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ARCHETYPED"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_id"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("template_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("rm_version"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::common::archetyped::archetyped::Archetyped {
archetype_id: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("archetype_id"))?,
template_id: __s1.flatten(),
rm_version: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("rm_version"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "ARCHETYPED", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::common::generic::attestation::Attestation {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 7usize;
if self.description.is_some() {
__n += 1;
}
if self.attested_view.is_some() {
__n += 1;
}
if self.proof.is_some() {
__n += 1;
}
if self.items.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "ATTESTATION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ATTESTATION")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "system_id", &self.system_id)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_committed",
&self.time_committed,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"change_type",
&self.change_type,
)?;
if let Some(__v) = &self.description {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "description", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "committer", &self.committer)?;
if let Some(__v) = &self.attested_view {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "attested_view", __v)?;
}
if let Some(__v) = &self.proof {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "proof", __v)?;
}
if let Some(__v) = &self.items
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "items", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "reason", &self.reason)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "is_pending", &self.is_pending)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::common::generic::attestation::Attestation {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"attested_view",
"change_type",
"committer",
"description",
"is_pending",
"items",
"proof",
"reason",
"system_id",
"time_committed",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"system_id" => ::core::result::Result::Ok(__Field::__F0),
"time_committed" => ::core::result::Result::Ok(__Field::__F1),
"change_type" => ::core::result::Result::Ok(__Field::__F2),
"description" => ::core::result::Result::Ok(__Field::__F3),
"committer" => ::core::result::Result::Ok(__Field::__F4),
"attested_view" => ::core::result::Result::Ok(__Field::__F5),
"proof" => ::core::result::Result::Ok(__Field::__F6),
"items" => ::core::result::Result::Ok(__Field::__F7),
"reason" => ::core::result::Result::Ok(__Field::__F8),
"is_pending" => ::core::result::Result::Ok(__Field::__F9),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"ATTESTATION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::common::generic::attestation::Attestation;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ATTESTATION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<_> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ATTESTATION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("system_id"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_committed"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("change_type"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("description"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("committer"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("attested_view"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("proof"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("items"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("reason"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("is_pending"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::common::generic::attestation::Attestation {
system_id: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("system_id"))?,
time_committed: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("time_committed"))?,
change_type: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("change_type"))?,
description: __s3.flatten(),
committer: __s4
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("committer"))?,
attested_view: __s5.flatten(),
proof: __s6.flatten(),
items: __s7,
reason: __s8
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("reason"))?,
is_pending: __s9
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("is_pending"))?,
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"ATTESTATION",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::common::generic::audit_details::AuditDetailsData {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 5usize;
if self.description.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "AUDIT_DETAILS", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "AUDIT_DETAILS")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "system_id", &self.system_id)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_committed",
&self.time_committed,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"change_type",
&self.change_type,
)?;
if let Some(__v) = &self.description {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "description", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "committer", &self.committer)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::common::generic::audit_details::AuditDetailsData
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"change_type",
"committer",
"description",
"system_id",
"time_committed",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"system_id" => ::core::result::Result::Ok(__Field::__F0),
"time_committed" => ::core::result::Result::Ok(__Field::__F1),
"change_type" => ::core::result::Result::Ok(__Field::__F2),
"description" => ::core::result::Result::Ok(__Field::__F3),
"committer" => ::core::result::Result::Ok(__Field::__F4),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"AUDIT_DETAILS",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::common::generic::audit_details::AuditDetailsData;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `AUDIT_DETAILS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("AUDIT_DETAILS"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("system_id"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_committed"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("change_type"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("description"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("committer"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::common::generic::audit_details::AuditDetailsData {
system_id: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("system_id"))?,
time_committed: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("time_committed"))?,
change_type: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("change_type"))?,
description: __s3.flatten(),
committer: __s4
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("committer"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"AUDIT_DETAILS",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::common::generic::audit_details::AuditDetails {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::common::generic::audit_details::AuditDetails::Attestation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::generic::audit_details::AuditDetails::AuditDetails(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::common::generic::audit_details::AuditDetails {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["ATTESTATION", "AUDIT_DETAILS"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::common::generic::audit_details::AuditDetails;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `AUDIT_DETAILS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"ATTESTATION" => ::core::result::Result::Ok(crate::v1_2::common::generic::audit_details::AuditDetails::Attestation(::serde::Deserialize::deserialize(__rest)?)),
"AUDIT_DETAILS" => ::core::result::Result::Ok(crate::v1_2::common::generic::audit_details::AuditDetails::AuditDetails(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("AUDIT_DETAILS", __other, "ATTESTATION, AUDIT_DETAILS")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"AUDIT_DETAILS",
&__other,
"ATTESTATION, AUDIT_DETAILS",
))
}
None => {
let __rest =
::openehr_base::serde_support::TaggedRest::new(None, __buffered, __map);
::core::result::Result::Ok(
crate::v1_2::common::generic::audit_details::AuditDetails::AuditDetails(
::serde::Deserialize::deserialize(__rest)?,
),
)
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::common::resource::authored_resource::AuthoredResource {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self.is_controlled.is_some() {
__n += 1;
}
if self.translations.is_some() {
__n += 1;
}
if self.description.is_some() {
__n += 1;
}
if self.revision_history.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "AUTHORED_RESOURCE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "AUTHORED_RESOURCE")?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"original_language",
&self.original_language,
)?;
if let Some(__v) = &self.is_controlled {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "is_controlled", __v)?;
}
if let Some(__v) = &self.translations {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "translations", __v)?;
}
if let Some(__v) = &self.description {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "description", __v)?;
}
if let Some(__v) = &self.revision_history {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "revision_history", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::common::resource::authored_resource::AuthoredResource
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"description",
"is_controlled",
"original_language",
"revision_history",
"translations",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"original_language" => ::core::result::Result::Ok(__Field::__F0),
"is_controlled" => ::core::result::Result::Ok(__Field::__F1),
"translations" => ::core::result::Result::Ok(__Field::__F2),
"description" => ::core::result::Result::Ok(__Field::__F3),
"revision_history" => ::core::result::Result::Ok(__Field::__F4),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"AUTHORED_RESOURCE",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::common::resource::authored_resource::AuthoredResource;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `AUTHORED_RESOURCE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("AUTHORED_RESOURCE"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("original_language"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("is_controlled"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("translations"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("description"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("revision_history"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::common::resource::authored_resource::AuthoredResource {
original_language: __s0.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("original_language")
})?,
is_controlled: __s1.flatten(),
translations: __s2.flatten(),
description: __s3.flatten(),
revision_history: __s4.flatten(),
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"AUTHORED_RESOURCE",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::demographic::capability::Capability {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.time_validity.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "CAPABILITY", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "CAPABILITY")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"credentials",
&self.credentials,
)?;
if let Some(__v) = &self.time_validity {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "time_validity", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::demographic::capability::Capability {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"credentials",
"feeder_audit",
"links",
"name",
"time_validity",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"credentials" => ::core::result::Result::Ok(__Field::__F6),
"time_validity" => ::core::result::Result::Ok(__Field::__F7),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"CAPABILITY",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::demographic::capability::Capability;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `CAPABILITY` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("CAPABILITY"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("credentials"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_validity"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::demographic::capability::Capability {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
credentials: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("credentials"))?,
time_validity: __s7.flatten(),
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "CAPABILITY", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::composition::content::entry::care_entry::CareEntry {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::composition::content::entry::care_entry::CareEntry::Action(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::composition::content::entry::care_entry::CareEntry::Evaluation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::composition::content::entry::care_entry::CareEntry::Instruction(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::composition::content::entry::care_entry::CareEntry::Observation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::composition::content::entry::care_entry::CareEntry
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["ACTION", "EVALUATION", "INSTRUCTION", "OBSERVATION"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::composition::content::entry::care_entry::CareEntry;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `CARE_ENTRY` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"ACTION" => ::core::result::Result::Ok(crate::v1_2::composition::content::entry::care_entry::CareEntry::Action(::serde::Deserialize::deserialize(__rest)?)),
"EVALUATION" => ::core::result::Result::Ok(crate::v1_2::composition::content::entry::care_entry::CareEntry::Evaluation(::serde::Deserialize::deserialize(__rest)?)),
"INSTRUCTION" => ::core::result::Result::Ok(crate::v1_2::composition::content::entry::care_entry::CareEntry::Instruction(::serde::Deserialize::deserialize(__rest)?)),
"OBSERVATION" => ::core::result::Result::Ok(crate::v1_2::composition::content::entry::care_entry::CareEntry::Observation(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("CARE_ENTRY", __other, "ACTION, EVALUATION, INSTRUCTION, OBSERVATION")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"CARE_ENTRY",
&__other,
"ACTION, EVALUATION, INSTRUCTION, OBSERVATION",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"CARE_ENTRY",
"ACTION, EVALUATION, INSTRUCTION, OBSERVATION",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::data_structures::representation::cluster::Cluster {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "CLUSTER", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "CLUSTER")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "items", &self.items)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::data_structures::representation::cluster::Cluster
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"feeder_audit",
"items",
"links",
"name",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"items" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "CLUSTER", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_structures::representation::cluster::Cluster;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `CLUSTER` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("CLUSTER"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("items"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::data_structures::representation::cluster::Cluster {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
items: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("items"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "CLUSTER", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::text::code_phrase::CodePhrase {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.preferred_term.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "CODE_PHRASE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "CODE_PHRASE")?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"terminology_id",
&self.terminology_id,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"code_string",
&self.code_string,
)?;
if let Some(__v) = &self.preferred_term {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "preferred_term", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::data_types::text::code_phrase::CodePhrase {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["code_string", "preferred_term", "terminology_id"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"terminology_id" => ::core::result::Result::Ok(__Field::__F0),
"code_string" => ::core::result::Result::Ok(__Field::__F1),
"preferred_term" => ::core::result::Result::Ok(__Field::__F2),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"CODE_PHRASE",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::text::code_phrase::CodePhrase;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `CODE_PHRASE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("CODE_PHRASE"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("terminology_id"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("code_string"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("preferred_term"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::data_types::text::code_phrase::CodePhrase {
terminology_id: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("terminology_id"))?,
code_string: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("code_string"))?,
preferred_term: __s2.flatten(),
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"CODE_PHRASE",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::support::terminology::code_set_access::CodeSetAccess {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 1usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "CODE_SET_ACCESS", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "CODE_SET_ACCESS")?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::support::terminology::code_set_access::CodeSetAccess
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[];
enum __Field {
__Type,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"CODE_SET_ACCESS",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::support::terminology::code_set_access::CodeSetAccess;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `CODE_SET_ACCESS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("CODE_SET_ACCESS"),
)?;
}
}
}
::core::result::Result::Ok(
crate::v1_2::support::terminology::code_set_access::CodeSetAccess {},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"CODE_SET_ACCESS",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::composition::composition::Composition {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 7usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.context.is_some() {
__n += 1;
}
if self.content.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "COMPOSITION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "COMPOSITION")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "language", &self.language)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "territory", &self.territory)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "category", &self.category)?;
if let Some(__v) = &self.context {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "context", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "composer", &self.composer)?;
if let Some(__v) = &self.content
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "content", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::composition::composition::Composition {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"category",
"composer",
"content",
"context",
"feeder_audit",
"language",
"links",
"name",
"territory",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
__F11,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"language" => ::core::result::Result::Ok(__Field::__F6),
"territory" => ::core::result::Result::Ok(__Field::__F7),
"category" => ::core::result::Result::Ok(__Field::__F8),
"context" => ::core::result::Result::Ok(__Field::__F9),
"composer" => ::core::result::Result::Ok(__Field::__F10),
"content" => ::core::result::Result::Ok(__Field::__F11),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"COMPOSITION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::composition::composition::Composition;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `COMPOSITION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s10: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s11: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("COMPOSITION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("language"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("territory"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("category"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("context"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("composer"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F11 => {
if __s11.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("content"),
);
}
__s11 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::composition::composition::Composition {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
language: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("language"))?,
territory: __s7
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("territory"))?,
category: __s8
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("category"))?,
context: __s9.flatten(),
composer: __s10
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("composer"))?,
content: __s11,
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"COMPOSITION",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::demographic::contact::Contact {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.time_validity.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "CONTACT", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "CONTACT")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "addresses", &self.addresses)?;
if let Some(__v) = &self.time_validity {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "time_validity", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::demographic::contact::Contact {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"addresses",
"archetype_details",
"archetype_node_id",
"feeder_audit",
"links",
"name",
"time_validity",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"addresses" => ::core::result::Result::Ok(__Field::__F6),
"time_validity" => ::core::result::Result::Ok(__Field::__F7),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "CONTACT", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::demographic::contact::Contact;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `CONTACT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("CONTACT"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("addresses"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_validity"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::demographic::contact::Contact {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
addresses: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("addresses"))?,
time_validity: __s7.flatten(),
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "CONTACT", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::composition::content::content_item::ContentItem {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::composition::content::content_item::ContentItem::Action(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::composition::content::content_item::ContentItem::AdminEntry(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::composition::content::content_item::ContentItem::Evaluation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::composition::content::content_item::ContentItem::GenericEntry(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::composition::content::content_item::ContentItem::Instruction(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::composition::content::content_item::ContentItem::Observation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::composition::content::content_item::ContentItem::Section(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::composition::content::content_item::ContentItem
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &[
"ACTION",
"ADMIN_ENTRY",
"EVALUATION",
"GENERIC_ENTRY",
"INSTRUCTION",
"OBSERVATION",
"SECTION",
];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::composition::content::content_item::ContentItem;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `CONTENT_ITEM` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"ACTION" => ::core::result::Result::Ok(crate::v1_2::composition::content::content_item::ContentItem::Action(::serde::Deserialize::deserialize(__rest)?)),
"ADMIN_ENTRY" => ::core::result::Result::Ok(crate::v1_2::composition::content::content_item::ContentItem::AdminEntry(::serde::Deserialize::deserialize(__rest)?)),
"EVALUATION" => ::core::result::Result::Ok(crate::v1_2::composition::content::content_item::ContentItem::Evaluation(::serde::Deserialize::deserialize(__rest)?)),
"GENERIC_ENTRY" => ::core::result::Result::Ok(crate::v1_2::composition::content::content_item::ContentItem::GenericEntry(::serde::Deserialize::deserialize(__rest)?)),
"INSTRUCTION" => ::core::result::Result::Ok(crate::v1_2::composition::content::content_item::ContentItem::Instruction(::serde::Deserialize::deserialize(__rest)?)),
"OBSERVATION" => ::core::result::Result::Ok(crate::v1_2::composition::content::content_item::ContentItem::Observation(::serde::Deserialize::deserialize(__rest)?)),
"SECTION" => ::core::result::Result::Ok(crate::v1_2::composition::content::content_item::ContentItem::Section(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("CONTENT_ITEM", __other, "ACTION, ADMIN_ENTRY, EVALUATION, GENERIC_ENTRY, INSTRUCTION, OBSERVATION, SECTION")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"CONTENT_ITEM",
&__other,
"ACTION, ADMIN_ENTRY, EVALUATION, GENERIC_ENTRY, INSTRUCTION, OBSERVATION, SECTION",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"CONTENT_ITEM",
"ACTION, ADMIN_ENTRY, EVALUATION, GENERIC_ENTRY, INSTRUCTION, OBSERVATION, SECTION",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::common::change_control::contribution::Contribution {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "CONTRIBUTION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "CONTRIBUTION")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "versions", &self.versions)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "audit", &self.audit)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::common::change_control::contribution::Contribution
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["audit", "uid", "versions"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"uid" => ::core::result::Result::Ok(__Field::__F0),
"versions" => ::core::result::Result::Ok(__Field::__F1),
"audit" => ::core::result::Result::Ok(__Field::__F2),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"CONTRIBUTION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::common::change_control::contribution::Contribution;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `CONTRIBUTION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("CONTRIBUTION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("versions"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("audit"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::common::change_control::contribution::Contribution {
uid: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
versions: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("versions"))?,
audit: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("audit"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"CONTRIBUTION",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::data_structures::data_structure::DataStructure {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::data_structures::data_structure::DataStructure::History(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_structures::data_structure::DataStructure::ItemList(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_structures::data_structure::DataStructure::ItemSingle(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_structures::data_structure::DataStructure::ItemTable(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_structures::data_structure::DataStructure::ItemTree(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::data_structures::data_structure::DataStructure
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &[
"HISTORY",
"ITEM_LIST",
"ITEM_SINGLE",
"ITEM_TABLE",
"ITEM_TREE",
];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_structures::data_structure::DataStructure;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DATA_STRUCTURE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"HISTORY" => ::core::result::Result::Ok(crate::v1_2::data_structures::data_structure::DataStructure::History(::serde::Deserialize::deserialize(__rest)?)),
"ITEM_LIST" => ::core::result::Result::Ok(crate::v1_2::data_structures::data_structure::DataStructure::ItemList(::serde::Deserialize::deserialize(__rest)?)),
"ITEM_SINGLE" => ::core::result::Result::Ok(crate::v1_2::data_structures::data_structure::DataStructure::ItemSingle(::serde::Deserialize::deserialize(__rest)?)),
"ITEM_TABLE" => ::core::result::Result::Ok(crate::v1_2::data_structures::data_structure::DataStructure::ItemTable(::serde::Deserialize::deserialize(__rest)?)),
"ITEM_TREE" => ::core::result::Result::Ok(crate::v1_2::data_structures::data_structure::DataStructure::ItemTree(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("DATA_STRUCTURE", __other, "HISTORY, ITEM_LIST, ITEM_SINGLE, ITEM_TABLE, ITEM_TREE")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"DATA_STRUCTURE",
&__other,
"HISTORY, ITEM_LIST, ITEM_SINGLE, ITEM_TABLE, ITEM_TREE",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"DATA_STRUCTURE",
"HISTORY, ITEM_LIST, ITEM_SINGLE, ITEM_TABLE, ITEM_TREE",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::basic::data_value::DataValue {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::data_types::basic::data_value::DataValue::DvBoolean(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::basic::data_value::DataValue::DvCount(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::basic::data_value::DataValue::DvDate(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::basic::data_value::DataValue::DvDateTime(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::basic::data_value::DataValue::DvDuration(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::basic::data_value::DataValue::DvGeneralTimeSpecification(
__x,
) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_2::data_types::basic::data_value::DataValue::DvIdentifier(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::basic::data_value::DataValue::DvInterval(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::basic::data_value::DataValue::DvMultimedia(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::basic::data_value::DataValue::DvOrdinal(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::basic::data_value::DataValue::DvParagraph(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::basic::data_value::DataValue::DvParsable(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::basic::data_value::DataValue::DvPeriodicTimeSpecification(
__x,
) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_2::data_types::basic::data_value::DataValue::DvProportion(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::basic::data_value::DataValue::DvQuantity(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::basic::data_value::DataValue::DvScale(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::basic::data_value::DataValue::DvState(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::basic::data_value::DataValue::DvText(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::basic::data_value::DataValue::DvTime(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::basic::data_value::DataValue::DvUri(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::data_types::basic::data_value::DataValue {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &[
"DV_BOOLEAN",
"DV_CODED_TEXT",
"DV_COUNT",
"DV_DATE",
"DV_DATE_TIME",
"DV_DURATION",
"DV_EHR_URI",
"DV_GENERAL_TIME_SPECIFICATION",
"DV_IDENTIFIER",
"DV_INTERVAL",
"DV_MULTIMEDIA",
"DV_ORDINAL",
"DV_PARAGRAPH",
"DV_PARSABLE",
"DV_PERIODIC_TIME_SPECIFICATION",
"DV_PROPORTION",
"DV_QUANTITY",
"DV_SCALE",
"DV_STATE",
"DV_TEXT",
"DV_TIME",
"DV_URI",
];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::basic::data_value::DataValue;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DATA_VALUE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_BOOLEAN" => ::core::result::Result::Ok(crate::v1_2::data_types::basic::data_value::DataValue::DvBoolean(::serde::Deserialize::deserialize(__rest)?)),
"DV_CODED_TEXT" => ::core::result::Result::Ok(crate::v1_2::data_types::basic::data_value::DataValue::DvText(::serde::Deserialize::deserialize(__rest)?)),
"DV_COUNT" => ::core::result::Result::Ok(crate::v1_2::data_types::basic::data_value::DataValue::DvCount(::serde::Deserialize::deserialize(__rest)?)),
"DV_DATE" => ::core::result::Result::Ok(crate::v1_2::data_types::basic::data_value::DataValue::DvDate(::serde::Deserialize::deserialize(__rest)?)),
"DV_DATE_TIME" => ::core::result::Result::Ok(crate::v1_2::data_types::basic::data_value::DataValue::DvDateTime(::serde::Deserialize::deserialize(__rest)?)),
"DV_DURATION" => ::core::result::Result::Ok(crate::v1_2::data_types::basic::data_value::DataValue::DvDuration(::serde::Deserialize::deserialize(__rest)?)),
"DV_EHR_URI" => ::core::result::Result::Ok(crate::v1_2::data_types::basic::data_value::DataValue::DvUri(::serde::Deserialize::deserialize(__rest)?)),
"DV_GENERAL_TIME_SPECIFICATION" => ::core::result::Result::Ok(crate::v1_2::data_types::basic::data_value::DataValue::DvGeneralTimeSpecification(::serde::Deserialize::deserialize(__rest)?)),
"DV_IDENTIFIER" => ::core::result::Result::Ok(crate::v1_2::data_types::basic::data_value::DataValue::DvIdentifier(::serde::Deserialize::deserialize(__rest)?)),
"DV_INTERVAL" => ::core::result::Result::Ok(crate::v1_2::data_types::basic::data_value::DataValue::DvInterval(::serde::Deserialize::deserialize(__rest)?)),
"DV_MULTIMEDIA" => ::core::result::Result::Ok(crate::v1_2::data_types::basic::data_value::DataValue::DvMultimedia(::serde::Deserialize::deserialize(__rest)?)),
"DV_ORDINAL" => ::core::result::Result::Ok(crate::v1_2::data_types::basic::data_value::DataValue::DvOrdinal(::serde::Deserialize::deserialize(__rest)?)),
"DV_PARAGRAPH" => ::core::result::Result::Ok(crate::v1_2::data_types::basic::data_value::DataValue::DvParagraph(::serde::Deserialize::deserialize(__rest)?)),
"DV_PARSABLE" => ::core::result::Result::Ok(crate::v1_2::data_types::basic::data_value::DataValue::DvParsable(::serde::Deserialize::deserialize(__rest)?)),
"DV_PERIODIC_TIME_SPECIFICATION" => ::core::result::Result::Ok(crate::v1_2::data_types::basic::data_value::DataValue::DvPeriodicTimeSpecification(::serde::Deserialize::deserialize(__rest)?)),
"DV_PROPORTION" => ::core::result::Result::Ok(crate::v1_2::data_types::basic::data_value::DataValue::DvProportion(::serde::Deserialize::deserialize(__rest)?)),
"DV_QUANTITY" => ::core::result::Result::Ok(crate::v1_2::data_types::basic::data_value::DataValue::DvQuantity(::serde::Deserialize::deserialize(__rest)?)),
"DV_SCALE" => ::core::result::Result::Ok(crate::v1_2::data_types::basic::data_value::DataValue::DvScale(::serde::Deserialize::deserialize(__rest)?)),
"DV_STATE" => ::core::result::Result::Ok(crate::v1_2::data_types::basic::data_value::DataValue::DvState(::serde::Deserialize::deserialize(__rest)?)),
"DV_TEXT" => ::core::result::Result::Ok(crate::v1_2::data_types::basic::data_value::DataValue::DvText(::serde::Deserialize::deserialize(__rest)?)),
"DV_TIME" => ::core::result::Result::Ok(crate::v1_2::data_types::basic::data_value::DataValue::DvTime(::serde::Deserialize::deserialize(__rest)?)),
"DV_URI" => ::core::result::Result::Ok(crate::v1_2::data_types::basic::data_value::DataValue::DvUri(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("DATA_VALUE", __other, "DV_BOOLEAN, DV_CODED_TEXT, DV_COUNT, DV_DATE, DV_DATE_TIME, DV_DURATION, DV_EHR_URI, DV_GENERAL_TIME_SPECIFICATION, DV_IDENTIFIER, DV_INTERVAL, DV_MULTIMEDIA, DV_ORDINAL, DV_PARAGRAPH, DV_PARSABLE, DV_PERIODIC_TIME_SPECIFICATION, DV_PROPORTION, DV_QUANTITY, DV_SCALE, DV_STATE, DV_TEXT, DV_TIME, DV_URI")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"DATA_VALUE",
&__other,
"DV_BOOLEAN, DV_CODED_TEXT, DV_COUNT, DV_DATE, DV_DATE_TIME, DV_DURATION, DV_EHR_URI, DV_GENERAL_TIME_SPECIFICATION, DV_IDENTIFIER, DV_INTERVAL, DV_MULTIMEDIA, DV_ORDINAL, DV_PARAGRAPH, DV_PARSABLE, DV_PERIODIC_TIME_SPECIFICATION, DV_PROPORTION, DV_QUANTITY, DV_SCALE, DV_STATE, DV_TEXT, DV_TIME, DV_URI",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"DATA_VALUE",
"DV_BOOLEAN, DV_CODED_TEXT, DV_COUNT, DV_DATE, DV_DATE_TIME, DV_DURATION, DV_EHR_URI, DV_GENERAL_TIME_SPECIFICATION, DV_IDENTIFIER, DV_INTERVAL, DV_MULTIMEDIA, DV_ORDINAL, DV_PARAGRAPH, DV_PARSABLE, DV_PERIODIC_TIME_SPECIFICATION, DV_PROPORTION, DV_QUANTITY, DV_SCALE, DV_STATE, DV_TEXT, DV_TIME, DV_URI",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize
for crate::v1_2::data_types::quantity::dv_absolute_quantity::DvAbsoluteQuantity
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::data_types::quantity::dv_absolute_quantity::DvAbsoluteQuantity::DvDate(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_2::data_types::quantity::dv_absolute_quantity::DvAbsoluteQuantity::DvDateTime(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_2::data_types::quantity::dv_absolute_quantity::DvAbsoluteQuantity::DvTime(__x) => ::serde::Serialize::serialize(__x, __serializer),
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::data_types::quantity::dv_absolute_quantity::DvAbsoluteQuantity
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["DV_DATE", "DV_DATE_TIME", "DV_TIME"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value =
crate::v1_2::data_types::quantity::dv_absolute_quantity::DvAbsoluteQuantity;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_ABSOLUTE_QUANTITY` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_DATE" => ::core::result::Result::Ok(crate::v1_2::data_types::quantity::dv_absolute_quantity::DvAbsoluteQuantity::DvDate(::serde::Deserialize::deserialize(__rest)?)),
"DV_DATE_TIME" => ::core::result::Result::Ok(crate::v1_2::data_types::quantity::dv_absolute_quantity::DvAbsoluteQuantity::DvDateTime(::serde::Deserialize::deserialize(__rest)?)),
"DV_TIME" => ::core::result::Result::Ok(crate::v1_2::data_types::quantity::dv_absolute_quantity::DvAbsoluteQuantity::DvTime(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("DV_ABSOLUTE_QUANTITY", __other, "DV_DATE, DV_DATE_TIME, DV_TIME")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"DV_ABSOLUTE_QUANTITY",
&__other,
"DV_DATE, DV_DATE_TIME, DV_TIME",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"DV_ABSOLUTE_QUANTITY",
"DV_DATE, DV_DATE_TIME, DV_TIME",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::quantity::dv_amount::DvAmount {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::data_types::quantity::dv_amount::DvAmount::DvCount(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::quantity::dv_amount::DvAmount::DvDuration(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::quantity::dv_amount::DvAmount::DvProportion(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::quantity::dv_amount::DvAmount::DvQuantity(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::data_types::quantity::dv_amount::DvAmount {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["DV_COUNT", "DV_DURATION", "DV_PROPORTION", "DV_QUANTITY"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::quantity::dv_amount::DvAmount;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_AMOUNT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_COUNT" => ::core::result::Result::Ok(crate::v1_2::data_types::quantity::dv_amount::DvAmount::DvCount(::serde::Deserialize::deserialize(__rest)?)),
"DV_DURATION" => ::core::result::Result::Ok(crate::v1_2::data_types::quantity::dv_amount::DvAmount::DvDuration(::serde::Deserialize::deserialize(__rest)?)),
"DV_PROPORTION" => ::core::result::Result::Ok(crate::v1_2::data_types::quantity::dv_amount::DvAmount::DvProportion(::serde::Deserialize::deserialize(__rest)?)),
"DV_QUANTITY" => ::core::result::Result::Ok(crate::v1_2::data_types::quantity::dv_amount::DvAmount::DvQuantity(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("DV_AMOUNT", __other, "DV_COUNT, DV_DURATION, DV_PROPORTION, DV_QUANTITY")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"DV_AMOUNT",
&__other,
"DV_COUNT, DV_DURATION, DV_PROPORTION, DV_QUANTITY",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"DV_AMOUNT",
"DV_COUNT, DV_DURATION, DV_PROPORTION, DV_QUANTITY",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::basic::dv_boolean::DvBoolean {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_BOOLEAN", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_BOOLEAN")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::data_types::basic::dv_boolean::DvBoolean {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["value"];
enum __Field {
__Type,
__F0,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"value" => ::core::result::Result::Ok(__Field::__F0),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"DV_BOOLEAN",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::basic::dv_boolean::DvBoolean;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_BOOLEAN` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_BOOLEAN"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::data_types::basic::dv_boolean::DvBoolean {
value: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "DV_BOOLEAN", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::text::dv_coded_text::DvCodedText {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.hyperlink.is_some() {
__n += 1;
}
if self.formatting.is_some() {
__n += 1;
}
if self.mappings.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.language.is_some() {
__n += 1;
}
if self.encoding.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_CODED_TEXT", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_CODED_TEXT")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
if let Some(__v) = &self.hyperlink {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "hyperlink", __v)?;
}
if let Some(__v) = &self.formatting {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "formatting", __v)?;
}
if let Some(__v) = &self.mappings
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "mappings", __v)?;
}
if let Some(__v) = &self.language {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "language", __v)?;
}
if let Some(__v) = &self.encoding {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "encoding", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"defining_code",
&self.defining_code,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::data_types::text::dv_coded_text::DvCodedText {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"defining_code",
"encoding",
"formatting",
"hyperlink",
"language",
"mappings",
"value",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"value" => ::core::result::Result::Ok(__Field::__F0),
"hyperlink" => ::core::result::Result::Ok(__Field::__F1),
"formatting" => ::core::result::Result::Ok(__Field::__F2),
"mappings" => ::core::result::Result::Ok(__Field::__F3),
"language" => ::core::result::Result::Ok(__Field::__F4),
"encoding" => ::core::result::Result::Ok(__Field::__F5),
"defining_code" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"DV_CODED_TEXT",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::text::dv_coded_text::DvCodedText;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_CODED_TEXT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_CODED_TEXT"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("hyperlink"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("formatting"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("mappings"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("language"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("encoding"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("defining_code"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::data_types::text::dv_coded_text::DvCodedText {
value: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
hyperlink: __s1.flatten(),
formatting: __s2.flatten(),
mappings: __s3,
language: __s4.flatten(),
encoding: __s5.flatten(),
defining_code: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("defining_code"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"DV_CODED_TEXT",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::quantity::dv_count::DvCount {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self.normal_status.is_some() {
__n += 1;
}
if self.normal_range.is_some() {
__n += 1;
}
if self
.other_reference_ranges
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.magnitude_status.is_some() {
__n += 1;
}
if self.accuracy.is_some() {
__n += 1;
}
if self.accuracy_is_percent.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_COUNT", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_COUNT")?;
if let Some(__v) = &self.normal_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_status", __v)?;
}
if let Some(__v) = &self.normal_range {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_range", __v)?;
}
if let Some(__v) = &self.other_reference_ranges
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"other_reference_ranges",
__v,
)?;
}
if let Some(__v) = &self.magnitude_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "magnitude_status", __v)?;
}
if let Some(__v) = &self.accuracy {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "accuracy", __v)?;
}
if let Some(__v) = &self.accuracy_is_percent {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "accuracy_is_percent", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "magnitude", &self.magnitude)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::data_types::quantity::dv_count::DvCount {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"accuracy",
"accuracy_is_percent",
"magnitude",
"magnitude_status",
"normal_range",
"normal_status",
"other_reference_ranges",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"normal_status" => ::core::result::Result::Ok(__Field::__F0),
"normal_range" => ::core::result::Result::Ok(__Field::__F1),
"other_reference_ranges" => ::core::result::Result::Ok(__Field::__F2),
"magnitude_status" => ::core::result::Result::Ok(__Field::__F3),
"accuracy" => ::core::result::Result::Ok(__Field::__F4),
"accuracy_is_percent" => ::core::result::Result::Ok(__Field::__F5),
"magnitude" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "DV_COUNT", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::quantity::dv_count::DvCount;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_COUNT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<_> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_COUNT"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_status"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_range"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_reference_ranges"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("magnitude_status"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("accuracy"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("accuracy_is_percent"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("magnitude"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::data_types::quantity::dv_count::DvCount {
normal_status: __s0.flatten(),
normal_range: __s1.flatten(),
other_reference_ranges: __s2,
magnitude_status: __s3.flatten(),
accuracy: __s4.flatten(),
accuracy_is_percent: __s5.flatten(),
magnitude: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("magnitude"))?,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "DV_COUNT", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::quantity::date_time::dv_date::DvDate {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self.normal_status.is_some() {
__n += 1;
}
if self.normal_range.is_some() {
__n += 1;
}
if self
.other_reference_ranges
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.magnitude_status.is_some() {
__n += 1;
}
if self.accuracy.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_DATE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_DATE")?;
if let Some(__v) = &self.normal_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_status", __v)?;
}
if let Some(__v) = &self.normal_range {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_range", __v)?;
}
if let Some(__v) = &self.other_reference_ranges
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"other_reference_ranges",
__v,
)?;
}
if let Some(__v) = &self.magnitude_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "magnitude_status", __v)?;
}
if let Some(__v) = &self.accuracy {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "accuracy", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::data_types::quantity::date_time::dv_date::DvDate
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"accuracy",
"magnitude_status",
"normal_range",
"normal_status",
"other_reference_ranges",
"value",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"normal_status" => ::core::result::Result::Ok(__Field::__F0),
"normal_range" => ::core::result::Result::Ok(__Field::__F1),
"other_reference_ranges" => ::core::result::Result::Ok(__Field::__F2),
"magnitude_status" => ::core::result::Result::Ok(__Field::__F3),
"accuracy" => ::core::result::Result::Ok(__Field::__F4),
"value" => ::core::result::Result::Ok(__Field::__F5),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "DV_DATE", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::quantity::date_time::dv_date::DvDate;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_DATE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<_> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_DATE"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_status"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_range"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_reference_ranges"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("magnitude_status"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("accuracy"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::data_types::quantity::date_time::dv_date::DvDate {
normal_status: __s0.flatten(),
normal_range: __s1.flatten(),
other_reference_ranges: __s2,
magnitude_status: __s3.flatten(),
accuracy: __s4.flatten(),
value: __s5
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "DV_DATE", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::quantity::date_time::dv_date_time::DvDateTime {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self.normal_status.is_some() {
__n += 1;
}
if self.normal_range.is_some() {
__n += 1;
}
if self
.other_reference_ranges
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.magnitude_status.is_some() {
__n += 1;
}
if self.accuracy.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_DATE_TIME", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_DATE_TIME")?;
if let Some(__v) = &self.normal_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_status", __v)?;
}
if let Some(__v) = &self.normal_range {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_range", __v)?;
}
if let Some(__v) = &self.other_reference_ranges
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"other_reference_ranges",
__v,
)?;
}
if let Some(__v) = &self.magnitude_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "magnitude_status", __v)?;
}
if let Some(__v) = &self.accuracy {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "accuracy", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::data_types::quantity::date_time::dv_date_time::DvDateTime
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"accuracy",
"magnitude_status",
"normal_range",
"normal_status",
"other_reference_ranges",
"value",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"normal_status" => ::core::result::Result::Ok(__Field::__F0),
"normal_range" => ::core::result::Result::Ok(__Field::__F1),
"other_reference_ranges" => ::core::result::Result::Ok(__Field::__F2),
"magnitude_status" => ::core::result::Result::Ok(__Field::__F3),
"accuracy" => ::core::result::Result::Ok(__Field::__F4),
"value" => ::core::result::Result::Ok(__Field::__F5),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"DV_DATE_TIME",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::quantity::date_time::dv_date_time::DvDateTime;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_DATE_TIME` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<_> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_DATE_TIME"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_status"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_range"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_reference_ranges"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("magnitude_status"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("accuracy"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::data_types::quantity::date_time::dv_date_time::DvDateTime {
normal_status: __s0.flatten(),
normal_range: __s1.flatten(),
other_reference_ranges: __s2,
magnitude_status: __s3.flatten(),
accuracy: __s4.flatten(),
value: __s5
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"DV_DATE_TIME",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::quantity::date_time::dv_duration::DvDuration {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self.normal_status.is_some() {
__n += 1;
}
if self.normal_range.is_some() {
__n += 1;
}
if self
.other_reference_ranges
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.magnitude_status.is_some() {
__n += 1;
}
if self.accuracy.is_some() {
__n += 1;
}
if self.accuracy_is_percent.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_DURATION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_DURATION")?;
if let Some(__v) = &self.normal_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_status", __v)?;
}
if let Some(__v) = &self.normal_range {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_range", __v)?;
}
if let Some(__v) = &self.other_reference_ranges
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"other_reference_ranges",
__v,
)?;
}
if let Some(__v) = &self.magnitude_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "magnitude_status", __v)?;
}
if let Some(__v) = &self.accuracy {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "accuracy", __v)?;
}
if let Some(__v) = &self.accuracy_is_percent {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "accuracy_is_percent", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::data_types::quantity::date_time::dv_duration::DvDuration
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"accuracy",
"accuracy_is_percent",
"magnitude_status",
"normal_range",
"normal_status",
"other_reference_ranges",
"value",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"normal_status" => ::core::result::Result::Ok(__Field::__F0),
"normal_range" => ::core::result::Result::Ok(__Field::__F1),
"other_reference_ranges" => ::core::result::Result::Ok(__Field::__F2),
"magnitude_status" => ::core::result::Result::Ok(__Field::__F3),
"accuracy" => ::core::result::Result::Ok(__Field::__F4),
"accuracy_is_percent" => ::core::result::Result::Ok(__Field::__F5),
"value" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"DV_DURATION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::quantity::date_time::dv_duration::DvDuration;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_DURATION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<_> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_DURATION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_status"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_range"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_reference_ranges"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("magnitude_status"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("accuracy"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("accuracy_is_percent"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::data_types::quantity::date_time::dv_duration::DvDuration {
normal_status: __s0.flatten(),
normal_range: __s1.flatten(),
other_reference_ranges: __s2,
magnitude_status: __s3.flatten(),
accuracy: __s4.flatten(),
accuracy_is_percent: __s5.flatten(),
value: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"DV_DURATION",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::uri::dv_ehr_uri::DvEhrUri {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_EHR_URI", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_EHR_URI")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::data_types::uri::dv_ehr_uri::DvEhrUri {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["value"];
enum __Field {
__Type,
__F0,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"value" => ::core::result::Result::Ok(__Field::__F0),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"DV_EHR_URI",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::uri::dv_ehr_uri::DvEhrUri;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_EHR_URI` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_EHR_URI"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::data_types::uri::dv_ehr_uri::DvEhrUri {
value: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "DV_EHR_URI", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::encapsulated::dv_encapsulated::DvEncapsulated {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::data_types::encapsulated::dv_encapsulated::DvEncapsulated::DvMultimedia(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_2::data_types::encapsulated::dv_encapsulated::DvEncapsulated::DvParsable(__x) => ::serde::Serialize::serialize(__x, __serializer),
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::data_types::encapsulated::dv_encapsulated::DvEncapsulated
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["DV_MULTIMEDIA", "DV_PARSABLE"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::encapsulated::dv_encapsulated::DvEncapsulated;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_ENCAPSULATED` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_MULTIMEDIA" => ::core::result::Result::Ok(crate::v1_2::data_types::encapsulated::dv_encapsulated::DvEncapsulated::DvMultimedia(::serde::Deserialize::deserialize(__rest)?)),
"DV_PARSABLE" => ::core::result::Result::Ok(crate::v1_2::data_types::encapsulated::dv_encapsulated::DvEncapsulated::DvParsable(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("DV_ENCAPSULATED", __other, "DV_MULTIMEDIA, DV_PARSABLE")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"DV_ENCAPSULATED",
&__other,
"DV_MULTIMEDIA, DV_PARSABLE",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"DV_ENCAPSULATED",
"DV_MULTIMEDIA, DV_PARSABLE",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::time_specification::dv_general_time_specification::DvGeneralTimeSpecification {
fn serialize<__S: ::serde::Serializer>(&self, __serializer: __S) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_GENERAL_TIME_SPECIFICATION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_GENERAL_TIME_SPECIFICATION")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::data_types::time_specification::dv_general_time_specification::DvGeneralTimeSpecification {
fn deserialize<__D: ::serde::Deserializer<'de>>(__deserializer: __D) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["value"];
enum __Field { __Type, __F0, }
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(__deserializer: __D) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(self, __v: &str) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"value" => ::core::result::Result::Ok(__Field::__F0),
_ => ::core::result::Result::Err(::openehr_base::serde_support::unknown_field(__v, "DV_GENERAL_TIME_SPECIFICATION", __FIELDS)),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::time_specification::dv_general_time_specification::DvGeneralTimeSpecification;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_GENERAL_TIME_SPECIFICATION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(self, mut __map: __A) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type { return ::core::result::Result::Err(::serde::de::Error::duplicate_field("_type")); }
__seen_type = true;
::serde::de::MapAccess::next_value_seed(&mut __map, ::openehr_base::serde_support::ExpectedType("DV_GENERAL_TIME_SPECIFICATION"))?;
}
__Field::__F0 => {
if __s0.is_some() { return ::core::result::Result::Err(::serde::de::Error::duplicate_field("value")); }
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::data_types::time_specification::dv_general_time_specification::DvGeneralTimeSpecification {
value: __s0.flatten().ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "DV_GENERAL_TIME_SPECIFICATION", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::basic::dv_identifier::DvIdentifier {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self.issuer.is_some() {
__n += 1;
}
if self.assigner.is_some() {
__n += 1;
}
if self.r#type.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_IDENTIFIER", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_IDENTIFIER")?;
if let Some(__v) = &self.issuer {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "issuer", __v)?;
}
if let Some(__v) = &self.assigner {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "assigner", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "id", &self.id)?;
if let Some(__v) = &self.r#type {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "type", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::data_types::basic::dv_identifier::DvIdentifier
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["assigner", "id", "issuer", "type"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"issuer" => ::core::result::Result::Ok(__Field::__F0),
"assigner" => ::core::result::Result::Ok(__Field::__F1),
"id" => ::core::result::Result::Ok(__Field::__F2),
"type" => ::core::result::Result::Ok(__Field::__F3),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"DV_IDENTIFIER",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::basic::dv_identifier::DvIdentifier;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_IDENTIFIER` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_IDENTIFIER"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("issuer"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("assigner"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("id"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("type"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::data_types::basic::dv_identifier::DvIdentifier {
issuer: __s0.flatten(),
assigner: __s1.flatten(),
id: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("id"))?,
r#type: __s3.flatten(),
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"DV_IDENTIFIER",
__FIELDS,
__Visitor,
)
}
}
impl<T: ::serde::Serialize> ::serde::Serialize
for crate::v1_2::data_types::quantity::dv_interval::DvInterval<T>
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 5usize;
if self.lower.is_some() {
__n += 1;
}
if self.upper.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_INTERVAL", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_INTERVAL")?;
if let Some(__v) = &self.lower {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "lower", __v)?;
}
if let Some(__v) = &self.upper {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "upper", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"lower_unbounded",
&self.lower_unbounded,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"upper_unbounded",
&self.upper_unbounded,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"lower_included",
&self.lower_included,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"upper_included",
&self.upper_included,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::Deserialize<'de>
for crate::v1_2::data_types::quantity::dv_interval::DvInterval<T>
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"lower",
"lower_included",
"lower_unbounded",
"upper",
"upper_included",
"upper_unbounded",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"lower" => ::core::result::Result::Ok(__Field::__F0),
"upper" => ::core::result::Result::Ok(__Field::__F1),
"lower_unbounded" => ::core::result::Result::Ok(__Field::__F2),
"upper_unbounded" => ::core::result::Result::Ok(__Field::__F3),
"lower_included" => ::core::result::Result::Ok(__Field::__F4),
"upper_included" => ::core::result::Result::Ok(__Field::__F5),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"DV_INTERVAL",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor<T>(::core::marker::PhantomData<(T,)>);
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::de::Visitor<'de> for __Visitor<T> {
type Value = crate::v1_2::data_types::quantity::dv_interval::DvInterval<T>;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_INTERVAL` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_INTERVAL"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("lower"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("upper"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("lower_unbounded"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("upper_unbounded"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("lower_included"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("upper_included"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::data_types::quantity::dv_interval::DvInterval {
lower: __s0.flatten(),
upper: __s1.flatten(),
lower_unbounded: __s2.flatten().unwrap_or(false),
upper_unbounded: __s3.flatten().unwrap_or(false),
lower_included: __s4.flatten().unwrap_or(true),
upper_included: __s5.flatten().unwrap_or(true),
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"DV_INTERVAL",
__FIELDS,
__Visitor(::core::marker::PhantomData),
)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::encapsulated::dv_multimedia::DvMultimedia {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.charset.is_some() {
__n += 1;
}
if self.language.is_some() {
__n += 1;
}
if self.alternate_text.is_some() {
__n += 1;
}
if self.uri.is_some() {
__n += 1;
}
if self.data.is_some() {
__n += 1;
}
if self.compression_algorithm.is_some() {
__n += 1;
}
if self.integrity_check.is_some() {
__n += 1;
}
if self.integrity_check_algorithm.is_some() {
__n += 1;
}
if self.thumbnail.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_MULTIMEDIA", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_MULTIMEDIA")?;
if let Some(__v) = &self.charset {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "charset", __v)?;
}
if let Some(__v) = &self.language {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "language", __v)?;
}
if let Some(__v) = &self.alternate_text {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "alternate_text", __v)?;
}
if let Some(__v) = &self.uri {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uri", __v)?;
}
if let Some(__v) = &self.data {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "data", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "media_type", &self.media_type)?;
if let Some(__v) = &self.compression_algorithm {
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"compression_algorithm",
__v,
)?;
}
if let Some(__v) = &self.integrity_check {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "integrity_check", __v)?;
}
if let Some(__v) = &self.integrity_check_algorithm {
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"integrity_check_algorithm",
__v,
)?;
}
if let Some(__v) = &self.thumbnail {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "thumbnail", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "size", &self.size)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::data_types::encapsulated::dv_multimedia::DvMultimedia
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"alternate_text",
"charset",
"compression_algorithm",
"data",
"integrity_check",
"integrity_check_algorithm",
"language",
"media_type",
"size",
"thumbnail",
"uri",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"charset" => ::core::result::Result::Ok(__Field::__F0),
"language" => ::core::result::Result::Ok(__Field::__F1),
"alternate_text" => ::core::result::Result::Ok(__Field::__F2),
"uri" => ::core::result::Result::Ok(__Field::__F3),
"data" => ::core::result::Result::Ok(__Field::__F4),
"media_type" => ::core::result::Result::Ok(__Field::__F5),
"compression_algorithm" => ::core::result::Result::Ok(__Field::__F6),
"integrity_check" => ::core::result::Result::Ok(__Field::__F7),
"integrity_check_algorithm" => {
::core::result::Result::Ok(__Field::__F8)
}
"thumbnail" => ::core::result::Result::Ok(__Field::__F9),
"size" => ::core::result::Result::Ok(__Field::__F10),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"DV_MULTIMEDIA",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::encapsulated::dv_multimedia::DvMultimedia;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_MULTIMEDIA` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s10: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_MULTIMEDIA"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("charset"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("language"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("alternate_text"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uri"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("data"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("media_type"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("compression_algorithm"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("integrity_check"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field(
"integrity_check_algorithm",
),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("thumbnail"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("size"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::data_types::encapsulated::dv_multimedia::DvMultimedia {
charset: __s0.flatten(),
language: __s1.flatten(),
alternate_text: __s2.flatten(),
uri: __s3.flatten(),
data: __s4.flatten(),
media_type: __s5
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("media_type"))?,
compression_algorithm: __s6.flatten(),
integrity_check: __s7.flatten(),
integrity_check_algorithm: __s8.flatten(),
thumbnail: __s9.flatten(),
size: __s10
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("size"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"DV_MULTIMEDIA",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::quantity::dv_ordered::DvOrdered {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::data_types::quantity::dv_ordered::DvOrdered::DvCount(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::quantity::dv_ordered::DvOrdered::DvDate(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::quantity::dv_ordered::DvOrdered::DvDateTime(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::quantity::dv_ordered::DvOrdered::DvDuration(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::quantity::dv_ordered::DvOrdered::DvOrdinal(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::quantity::dv_ordered::DvOrdered::DvProportion(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::quantity::dv_ordered::DvOrdered::DvQuantity(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::quantity::dv_ordered::DvOrdered::DvScale(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::quantity::dv_ordered::DvOrdered::DvTime(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::data_types::quantity::dv_ordered::DvOrdered {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &[
"DV_COUNT",
"DV_DATE",
"DV_DATE_TIME",
"DV_DURATION",
"DV_ORDINAL",
"DV_PROPORTION",
"DV_QUANTITY",
"DV_SCALE",
"DV_TIME",
];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::quantity::dv_ordered::DvOrdered;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_ORDERED` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_COUNT" => ::core::result::Result::Ok(crate::v1_2::data_types::quantity::dv_ordered::DvOrdered::DvCount(::serde::Deserialize::deserialize(__rest)?)),
"DV_DATE" => ::core::result::Result::Ok(crate::v1_2::data_types::quantity::dv_ordered::DvOrdered::DvDate(::serde::Deserialize::deserialize(__rest)?)),
"DV_DATE_TIME" => ::core::result::Result::Ok(crate::v1_2::data_types::quantity::dv_ordered::DvOrdered::DvDateTime(::serde::Deserialize::deserialize(__rest)?)),
"DV_DURATION" => ::core::result::Result::Ok(crate::v1_2::data_types::quantity::dv_ordered::DvOrdered::DvDuration(::serde::Deserialize::deserialize(__rest)?)),
"DV_ORDINAL" => ::core::result::Result::Ok(crate::v1_2::data_types::quantity::dv_ordered::DvOrdered::DvOrdinal(::serde::Deserialize::deserialize(__rest)?)),
"DV_PROPORTION" => ::core::result::Result::Ok(crate::v1_2::data_types::quantity::dv_ordered::DvOrdered::DvProportion(::serde::Deserialize::deserialize(__rest)?)),
"DV_QUANTITY" => ::core::result::Result::Ok(crate::v1_2::data_types::quantity::dv_ordered::DvOrdered::DvQuantity(::serde::Deserialize::deserialize(__rest)?)),
"DV_SCALE" => ::core::result::Result::Ok(crate::v1_2::data_types::quantity::dv_ordered::DvOrdered::DvScale(::serde::Deserialize::deserialize(__rest)?)),
"DV_TIME" => ::core::result::Result::Ok(crate::v1_2::data_types::quantity::dv_ordered::DvOrdered::DvTime(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("DV_ORDERED", __other, "DV_COUNT, DV_DATE, DV_DATE_TIME, DV_DURATION, DV_ORDINAL, DV_PROPORTION, DV_QUANTITY, DV_SCALE, DV_TIME")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"DV_ORDERED",
&__other,
"DV_COUNT, DV_DATE, DV_DATE_TIME, DV_DURATION, DV_ORDINAL, DV_PROPORTION, DV_QUANTITY, DV_SCALE, DV_TIME",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"DV_ORDERED",
"DV_COUNT, DV_DATE, DV_DATE_TIME, DV_DURATION, DV_ORDINAL, DV_PROPORTION, DV_QUANTITY, DV_SCALE, DV_TIME",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::quantity::dv_ordinal::DvOrdinal {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.normal_status.is_some() {
__n += 1;
}
if self.normal_range.is_some() {
__n += 1;
}
if self
.other_reference_ranges
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_ORDINAL", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_ORDINAL")?;
if let Some(__v) = &self.normal_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_status", __v)?;
}
if let Some(__v) = &self.normal_range {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_range", __v)?;
}
if let Some(__v) = &self.other_reference_ranges
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"other_reference_ranges",
__v,
)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "symbol", &self.symbol)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::data_types::quantity::dv_ordinal::DvOrdinal {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"normal_range",
"normal_status",
"other_reference_ranges",
"symbol",
"value",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"normal_status" => ::core::result::Result::Ok(__Field::__F0),
"normal_range" => ::core::result::Result::Ok(__Field::__F1),
"other_reference_ranges" => ::core::result::Result::Ok(__Field::__F2),
"symbol" => ::core::result::Result::Ok(__Field::__F3),
"value" => ::core::result::Result::Ok(__Field::__F4),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"DV_ORDINAL",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::quantity::dv_ordinal::DvOrdinal;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_ORDINAL` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<_> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_ORDINAL"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_status"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_range"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_reference_ranges"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("symbol"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::data_types::quantity::dv_ordinal::DvOrdinal {
normal_status: __s0.flatten(),
normal_range: __s1.flatten(),
other_reference_ranges: __s2,
symbol: __s3
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("symbol"))?,
value: __s4
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "DV_ORDINAL", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::text::dv_paragraph::DvParagraph {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_PARAGRAPH", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_PARAGRAPH")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "items", &self.items)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::data_types::text::dv_paragraph::DvParagraph {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["items"];
enum __Field {
__Type,
__F0,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"items" => ::core::result::Result::Ok(__Field::__F0),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"DV_PARAGRAPH",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::text::dv_paragraph::DvParagraph;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_PARAGRAPH` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_PARAGRAPH"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("items"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::data_types::text::dv_paragraph::DvParagraph {
items: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("items"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"DV_PARAGRAPH",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::encapsulated::dv_parsable::DvParsable {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.charset.is_some() {
__n += 1;
}
if self.language.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_PARSABLE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_PARSABLE")?;
if let Some(__v) = &self.charset {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "charset", __v)?;
}
if let Some(__v) = &self.language {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "language", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "formalism", &self.formalism)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::data_types::encapsulated::dv_parsable::DvParsable
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["charset", "formalism", "language", "value"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"charset" => ::core::result::Result::Ok(__Field::__F0),
"language" => ::core::result::Result::Ok(__Field::__F1),
"value" => ::core::result::Result::Ok(__Field::__F2),
"formalism" => ::core::result::Result::Ok(__Field::__F3),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"DV_PARSABLE",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::encapsulated::dv_parsable::DvParsable;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_PARSABLE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_PARSABLE"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("charset"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("language"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("formalism"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::data_types::encapsulated::dv_parsable::DvParsable {
charset: __s0.flatten(),
language: __s1.flatten(),
value: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
formalism: __s3
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("formalism"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"DV_PARSABLE",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::time_specification::dv_periodic_time_specification::DvPeriodicTimeSpecification {
fn serialize<__S: ::serde::Serializer>(&self, __serializer: __S) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_PERIODIC_TIME_SPECIFICATION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_PERIODIC_TIME_SPECIFICATION")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::data_types::time_specification::dv_periodic_time_specification::DvPeriodicTimeSpecification {
fn deserialize<__D: ::serde::Deserializer<'de>>(__deserializer: __D) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["value"];
enum __Field { __Type, __F0, }
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(__deserializer: __D) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(self, __v: &str) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"value" => ::core::result::Result::Ok(__Field::__F0),
_ => ::core::result::Result::Err(::openehr_base::serde_support::unknown_field(__v, "DV_PERIODIC_TIME_SPECIFICATION", __FIELDS)),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::time_specification::dv_periodic_time_specification::DvPeriodicTimeSpecification;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_PERIODIC_TIME_SPECIFICATION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(self, mut __map: __A) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type { return ::core::result::Result::Err(::serde::de::Error::duplicate_field("_type")); }
__seen_type = true;
::serde::de::MapAccess::next_value_seed(&mut __map, ::openehr_base::serde_support::ExpectedType("DV_PERIODIC_TIME_SPECIFICATION"))?;
}
__Field::__F0 => {
if __s0.is_some() { return ::core::result::Result::Err(::serde::de::Error::duplicate_field("value")); }
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::data_types::time_specification::dv_periodic_time_specification::DvPeriodicTimeSpecification {
value: __s0.flatten().ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "DV_PERIODIC_TIME_SPECIFICATION", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::quantity::dv_proportion::DvProportion {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.normal_status.is_some() {
__n += 1;
}
if self.normal_range.is_some() {
__n += 1;
}
if self
.other_reference_ranges
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.magnitude_status.is_some() {
__n += 1;
}
if self.accuracy.is_some() {
__n += 1;
}
if self.accuracy_is_percent.is_some() {
__n += 1;
}
if self.precision.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_PROPORTION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_PROPORTION")?;
if let Some(__v) = &self.normal_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_status", __v)?;
}
if let Some(__v) = &self.normal_range {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_range", __v)?;
}
if let Some(__v) = &self.other_reference_ranges
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"other_reference_ranges",
__v,
)?;
}
if let Some(__v) = &self.magnitude_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "magnitude_status", __v)?;
}
if let Some(__v) = &self.accuracy {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "accuracy", __v)?;
}
if let Some(__v) = &self.accuracy_is_percent {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "accuracy_is_percent", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "numerator", &self.numerator)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"denominator",
&self.denominator,
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "type", &self.r#type)?;
if let Some(__v) = &self.precision {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "precision", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::data_types::quantity::dv_proportion::DvProportion
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"accuracy",
"accuracy_is_percent",
"denominator",
"magnitude_status",
"normal_range",
"normal_status",
"numerator",
"other_reference_ranges",
"precision",
"type",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"normal_status" => ::core::result::Result::Ok(__Field::__F0),
"normal_range" => ::core::result::Result::Ok(__Field::__F1),
"other_reference_ranges" => ::core::result::Result::Ok(__Field::__F2),
"magnitude_status" => ::core::result::Result::Ok(__Field::__F3),
"accuracy" => ::core::result::Result::Ok(__Field::__F4),
"accuracy_is_percent" => ::core::result::Result::Ok(__Field::__F5),
"numerator" => ::core::result::Result::Ok(__Field::__F6),
"denominator" => ::core::result::Result::Ok(__Field::__F7),
"type" => ::core::result::Result::Ok(__Field::__F8),
"precision" => ::core::result::Result::Ok(__Field::__F9),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"DV_PROPORTION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::quantity::dv_proportion::DvProportion;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_PROPORTION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<_> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_PROPORTION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_status"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_range"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_reference_ranges"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("magnitude_status"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("accuracy"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("accuracy_is_percent"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("numerator"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("denominator"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("type"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("precision"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::data_types::quantity::dv_proportion::DvProportion {
normal_status: __s0.flatten(),
normal_range: __s1.flatten(),
other_reference_ranges: __s2,
magnitude_status: __s3.flatten(),
accuracy: __s4.flatten(),
accuracy_is_percent: __s5.flatten(),
numerator: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("numerator"))?,
denominator: __s7
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("denominator"))?,
r#type: __s8
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("type"))?,
precision: __s9.flatten(),
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"DV_PROPORTION",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::quantity::dv_quantified::DvQuantified {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::data_types::quantity::dv_quantified::DvQuantified::DvCount(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::quantity::dv_quantified::DvQuantified::DvDate(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::quantity::dv_quantified::DvQuantified::DvDateTime(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::quantity::dv_quantified::DvQuantified::DvDuration(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::quantity::dv_quantified::DvQuantified::DvProportion(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::quantity::dv_quantified::DvQuantified::DvQuantity(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::quantity::dv_quantified::DvQuantified::DvTime(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::data_types::quantity::dv_quantified::DvQuantified
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &[
"DV_COUNT",
"DV_DATE",
"DV_DATE_TIME",
"DV_DURATION",
"DV_PROPORTION",
"DV_QUANTITY",
"DV_TIME",
];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::quantity::dv_quantified::DvQuantified;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_QUANTIFIED` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_COUNT" => ::core::result::Result::Ok(crate::v1_2::data_types::quantity::dv_quantified::DvQuantified::DvCount(::serde::Deserialize::deserialize(__rest)?)),
"DV_DATE" => ::core::result::Result::Ok(crate::v1_2::data_types::quantity::dv_quantified::DvQuantified::DvDate(::serde::Deserialize::deserialize(__rest)?)),
"DV_DATE_TIME" => ::core::result::Result::Ok(crate::v1_2::data_types::quantity::dv_quantified::DvQuantified::DvDateTime(::serde::Deserialize::deserialize(__rest)?)),
"DV_DURATION" => ::core::result::Result::Ok(crate::v1_2::data_types::quantity::dv_quantified::DvQuantified::DvDuration(::serde::Deserialize::deserialize(__rest)?)),
"DV_PROPORTION" => ::core::result::Result::Ok(crate::v1_2::data_types::quantity::dv_quantified::DvQuantified::DvProportion(::serde::Deserialize::deserialize(__rest)?)),
"DV_QUANTITY" => ::core::result::Result::Ok(crate::v1_2::data_types::quantity::dv_quantified::DvQuantified::DvQuantity(::serde::Deserialize::deserialize(__rest)?)),
"DV_TIME" => ::core::result::Result::Ok(crate::v1_2::data_types::quantity::dv_quantified::DvQuantified::DvTime(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("DV_QUANTIFIED", __other, "DV_COUNT, DV_DATE, DV_DATE_TIME, DV_DURATION, DV_PROPORTION, DV_QUANTITY, DV_TIME")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"DV_QUANTIFIED",
&__other,
"DV_COUNT, DV_DATE, DV_DATE_TIME, DV_DURATION, DV_PROPORTION, DV_QUANTITY, DV_TIME",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"DV_QUANTIFIED",
"DV_COUNT, DV_DATE, DV_DATE_TIME, DV_DURATION, DV_PROPORTION, DV_QUANTITY, DV_TIME",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::quantity::dv_quantity::DvQuantity {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.normal_status.is_some() {
__n += 1;
}
if self.normal_range.is_some() {
__n += 1;
}
if self
.other_reference_ranges
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.magnitude_status.is_some() {
__n += 1;
}
if self.accuracy.is_some() {
__n += 1;
}
if self.accuracy_is_percent.is_some() {
__n += 1;
}
if self.precision.is_some() {
__n += 1;
}
if self.units_system.is_some() {
__n += 1;
}
if self.units_display_name.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_QUANTITY", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_QUANTITY")?;
if let Some(__v) = &self.normal_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_status", __v)?;
}
if let Some(__v) = &self.normal_range {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_range", __v)?;
}
if let Some(__v) = &self.other_reference_ranges
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"other_reference_ranges",
__v,
)?;
}
if let Some(__v) = &self.magnitude_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "magnitude_status", __v)?;
}
if let Some(__v) = &self.accuracy {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "accuracy", __v)?;
}
if let Some(__v) = &self.accuracy_is_percent {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "accuracy_is_percent", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "magnitude", &self.magnitude)?;
if let Some(__v) = &self.precision {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "precision", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "units", &self.units)?;
if let Some(__v) = &self.units_system {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "units_system", __v)?;
}
if let Some(__v) = &self.units_display_name {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "units_display_name", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::data_types::quantity::dv_quantity::DvQuantity {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"accuracy",
"accuracy_is_percent",
"magnitude",
"magnitude_status",
"normal_range",
"normal_status",
"other_reference_ranges",
"precision",
"units",
"units_display_name",
"units_system",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"normal_status" => ::core::result::Result::Ok(__Field::__F0),
"normal_range" => ::core::result::Result::Ok(__Field::__F1),
"other_reference_ranges" => ::core::result::Result::Ok(__Field::__F2),
"magnitude_status" => ::core::result::Result::Ok(__Field::__F3),
"accuracy" => ::core::result::Result::Ok(__Field::__F4),
"accuracy_is_percent" => ::core::result::Result::Ok(__Field::__F5),
"magnitude" => ::core::result::Result::Ok(__Field::__F6),
"precision" => ::core::result::Result::Ok(__Field::__F7),
"units" => ::core::result::Result::Ok(__Field::__F8),
"units_system" => ::core::result::Result::Ok(__Field::__F9),
"units_display_name" => ::core::result::Result::Ok(__Field::__F10),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"DV_QUANTITY",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::quantity::dv_quantity::DvQuantity;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_QUANTITY` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<_> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s10: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_QUANTITY"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_status"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_range"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_reference_ranges"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("magnitude_status"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("accuracy"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("accuracy_is_percent"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("magnitude"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("precision"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("units"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("units_system"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("units_display_name"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::data_types::quantity::dv_quantity::DvQuantity {
normal_status: __s0.flatten(),
normal_range: __s1.flatten(),
other_reference_ranges: __s2,
magnitude_status: __s3.flatten(),
accuracy: __s4.flatten(),
accuracy_is_percent: __s5.flatten(),
magnitude: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("magnitude"))?,
precision: __s7.flatten(),
units: __s8
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("units"))?,
units_system: __s9.flatten(),
units_display_name: __s10.flatten(),
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"DV_QUANTITY",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::quantity::dv_scale::DvScale {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.normal_status.is_some() {
__n += 1;
}
if self.normal_range.is_some() {
__n += 1;
}
if self
.other_reference_ranges
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_SCALE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_SCALE")?;
if let Some(__v) = &self.normal_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_status", __v)?;
}
if let Some(__v) = &self.normal_range {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_range", __v)?;
}
if let Some(__v) = &self.other_reference_ranges
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"other_reference_ranges",
__v,
)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "symbol", &self.symbol)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::data_types::quantity::dv_scale::DvScale {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"normal_range",
"normal_status",
"other_reference_ranges",
"symbol",
"value",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"normal_status" => ::core::result::Result::Ok(__Field::__F0),
"normal_range" => ::core::result::Result::Ok(__Field::__F1),
"other_reference_ranges" => ::core::result::Result::Ok(__Field::__F2),
"symbol" => ::core::result::Result::Ok(__Field::__F3),
"value" => ::core::result::Result::Ok(__Field::__F4),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "DV_SCALE", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::quantity::dv_scale::DvScale;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_SCALE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<_> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_SCALE"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_status"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_range"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_reference_ranges"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("symbol"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::data_types::quantity::dv_scale::DvScale {
normal_status: __s0.flatten(),
normal_range: __s1.flatten(),
other_reference_ranges: __s2,
symbol: __s3
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("symbol"))?,
value: __s4
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "DV_SCALE", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::basic::dv_state::DvState {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_STATE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_STATE")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"is_terminal",
&self.is_terminal,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::data_types::basic::dv_state::DvState {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["is_terminal", "value"];
enum __Field {
__Type,
__F0,
__F1,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"value" => ::core::result::Result::Ok(__Field::__F0),
"is_terminal" => ::core::result::Result::Ok(__Field::__F1),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "DV_STATE", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::basic::dv_state::DvState;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_STATE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_STATE"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("is_terminal"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::data_types::basic::dv_state::DvState {
value: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
is_terminal: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("is_terminal"))?,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "DV_STATE", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::quantity::date_time::dv_temporal::DvTemporal {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::data_types::quantity::date_time::dv_temporal::DvTemporal::DvDate(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::quantity::date_time::dv_temporal::DvTemporal::DvDateTime(
__x,
) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_2::data_types::quantity::date_time::dv_temporal::DvTemporal::DvTime(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::data_types::quantity::date_time::dv_temporal::DvTemporal
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["DV_DATE", "DV_DATE_TIME", "DV_TIME"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::quantity::date_time::dv_temporal::DvTemporal;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_TEMPORAL` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_DATE" => ::core::result::Result::Ok(crate::v1_2::data_types::quantity::date_time::dv_temporal::DvTemporal::DvDate(::serde::Deserialize::deserialize(__rest)?)),
"DV_DATE_TIME" => ::core::result::Result::Ok(crate::v1_2::data_types::quantity::date_time::dv_temporal::DvTemporal::DvDateTime(::serde::Deserialize::deserialize(__rest)?)),
"DV_TIME" => ::core::result::Result::Ok(crate::v1_2::data_types::quantity::date_time::dv_temporal::DvTemporal::DvTime(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("DV_TEMPORAL", __other, "DV_DATE, DV_DATE_TIME, DV_TIME")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"DV_TEMPORAL",
&__other,
"DV_DATE, DV_DATE_TIME, DV_TIME",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"DV_TEMPORAL",
"DV_DATE, DV_DATE_TIME, DV_TIME",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::text::dv_text::DvTextData {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self.hyperlink.is_some() {
__n += 1;
}
if self.formatting.is_some() {
__n += 1;
}
if self.mappings.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.language.is_some() {
__n += 1;
}
if self.encoding.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_TEXT", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_TEXT")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
if let Some(__v) = &self.hyperlink {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "hyperlink", __v)?;
}
if let Some(__v) = &self.formatting {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "formatting", __v)?;
}
if let Some(__v) = &self.mappings
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "mappings", __v)?;
}
if let Some(__v) = &self.language {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "language", __v)?;
}
if let Some(__v) = &self.encoding {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "encoding", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::data_types::text::dv_text::DvTextData {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"encoding",
"formatting",
"hyperlink",
"language",
"mappings",
"value",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"value" => ::core::result::Result::Ok(__Field::__F0),
"hyperlink" => ::core::result::Result::Ok(__Field::__F1),
"formatting" => ::core::result::Result::Ok(__Field::__F2),
"mappings" => ::core::result::Result::Ok(__Field::__F3),
"language" => ::core::result::Result::Ok(__Field::__F4),
"encoding" => ::core::result::Result::Ok(__Field::__F5),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "DV_TEXT", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::text::dv_text::DvTextData;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_TEXT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_TEXT"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("hyperlink"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("formatting"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("mappings"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("language"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("encoding"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::data_types::text::dv_text::DvTextData {
value: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
hyperlink: __s1.flatten(),
formatting: __s2.flatten(),
mappings: __s3,
language: __s4.flatten(),
encoding: __s5.flatten(),
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "DV_TEXT", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::text::dv_text::DvText {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::data_types::text::dv_text::DvText::DvCodedText(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::text::dv_text::DvText::DvText(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::data_types::text::dv_text::DvText {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["DV_CODED_TEXT", "DV_TEXT"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::text::dv_text::DvText;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_TEXT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_CODED_TEXT" => ::core::result::Result::Ok(
crate::v1_2::data_types::text::dv_text::DvText::DvCodedText(
::serde::Deserialize::deserialize(__rest)?,
),
),
"DV_TEXT" => ::core::result::Result::Ok(
crate::v1_2::data_types::text::dv_text::DvText::DvText(
::serde::Deserialize::deserialize(__rest)?,
),
),
__other => ::core::result::Result::Err(
::openehr_base::serde_support::unexpected_type(
"DV_TEXT",
__other,
"DV_CODED_TEXT, DV_TEXT",
),
),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"DV_TEXT",
&__other,
"DV_CODED_TEXT, DV_TEXT",
))
}
None => {
let __rest =
::openehr_base::serde_support::TaggedRest::new(None, __buffered, __map);
::core::result::Result::Ok(
crate::v1_2::data_types::text::dv_text::DvText::DvText(
::serde::Deserialize::deserialize(__rest)?,
),
)
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::quantity::date_time::dv_time::DvTime {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self.normal_status.is_some() {
__n += 1;
}
if self.normal_range.is_some() {
__n += 1;
}
if self
.other_reference_ranges
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.magnitude_status.is_some() {
__n += 1;
}
if self.accuracy.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_TIME", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_TIME")?;
if let Some(__v) = &self.normal_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_status", __v)?;
}
if let Some(__v) = &self.normal_range {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "normal_range", __v)?;
}
if let Some(__v) = &self.other_reference_ranges
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"other_reference_ranges",
__v,
)?;
}
if let Some(__v) = &self.magnitude_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "magnitude_status", __v)?;
}
if let Some(__v) = &self.accuracy {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "accuracy", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::data_types::quantity::date_time::dv_time::DvTime
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"accuracy",
"magnitude_status",
"normal_range",
"normal_status",
"other_reference_ranges",
"value",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"normal_status" => ::core::result::Result::Ok(__Field::__F0),
"normal_range" => ::core::result::Result::Ok(__Field::__F1),
"other_reference_ranges" => ::core::result::Result::Ok(__Field::__F2),
"magnitude_status" => ::core::result::Result::Ok(__Field::__F3),
"accuracy" => ::core::result::Result::Ok(__Field::__F4),
"value" => ::core::result::Result::Ok(__Field::__F5),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "DV_TIME", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::quantity::date_time::dv_time::DvTime;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_TIME` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<_> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_TIME"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_status"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("normal_range"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_reference_ranges"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("magnitude_status"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("accuracy"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::data_types::quantity::date_time::dv_time::DvTime {
normal_status: __s0.flatten(),
normal_range: __s1.flatten(),
other_reference_ranges: __s2,
magnitude_status: __s3.flatten(),
accuracy: __s4.flatten(),
value: __s5
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "DV_TIME", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize
for crate::v1_2::data_types::time_specification::dv_time_specification::DvTimeSpecification
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::data_types::time_specification::dv_time_specification::DvTimeSpecification::DvGeneralTimeSpecification(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_2::data_types::time_specification::dv_time_specification::DvTimeSpecification::DvPeriodicTimeSpecification(__x) => ::serde::Serialize::serialize(__x, __serializer),
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::data_types::time_specification::dv_time_specification::DvTimeSpecification
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &[
"DV_GENERAL_TIME_SPECIFICATION",
"DV_PERIODIC_TIME_SPECIFICATION",
];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::time_specification::dv_time_specification::DvTimeSpecification;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_TIME_SPECIFICATION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_GENERAL_TIME_SPECIFICATION" => ::core::result::Result::Ok(crate::v1_2::data_types::time_specification::dv_time_specification::DvTimeSpecification::DvGeneralTimeSpecification(::serde::Deserialize::deserialize(__rest)?)),
"DV_PERIODIC_TIME_SPECIFICATION" => ::core::result::Result::Ok(crate::v1_2::data_types::time_specification::dv_time_specification::DvTimeSpecification::DvPeriodicTimeSpecification(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("DV_TIME_SPECIFICATION", __other, "DV_GENERAL_TIME_SPECIFICATION, DV_PERIODIC_TIME_SPECIFICATION")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"DV_TIME_SPECIFICATION",
&__other,
"DV_GENERAL_TIME_SPECIFICATION, DV_PERIODIC_TIME_SPECIFICATION",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"DV_TIME_SPECIFICATION",
"DV_GENERAL_TIME_SPECIFICATION, DV_PERIODIC_TIME_SPECIFICATION",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::uri::dv_uri::DvUriData {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "DV_URI", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "DV_URI")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::data_types::uri::dv_uri::DvUriData {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["value"];
enum __Field {
__Type,
__F0,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"value" => ::core::result::Result::Ok(__Field::__F0),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "DV_URI", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::uri::dv_uri::DvUriData;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_URI` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("DV_URI"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::data_types::uri::dv_uri::DvUriData {
value: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "DV_URI", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::uri::dv_uri::DvUri {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::data_types::uri::dv_uri::DvUri::DvEhrUri(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_types::uri::dv_uri::DvUri::DvUri(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::data_types::uri::dv_uri::DvUri {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["DV_EHR_URI", "DV_URI"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::uri::dv_uri::DvUri;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `DV_URI` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_EHR_URI" => ::core::result::Result::Ok(
crate::v1_2::data_types::uri::dv_uri::DvUri::DvEhrUri(
::serde::Deserialize::deserialize(__rest)?,
),
),
"DV_URI" => ::core::result::Result::Ok(
crate::v1_2::data_types::uri::dv_uri::DvUri::DvUri(
::serde::Deserialize::deserialize(__rest)?,
),
),
__other => ::core::result::Result::Err(
::openehr_base::serde_support::unexpected_type(
"DV_URI",
__other,
"DV_EHR_URI, DV_URI",
),
),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"DV_URI",
&__other,
"DV_EHR_URI, DV_URI",
))
}
None => {
let __rest =
::openehr_base::serde_support::TaggedRest::new(None, __buffered, __map);
::core::result::Result::Ok(
crate::v1_2::data_types::uri::dv_uri::DvUri::DvUri(
::serde::Deserialize::deserialize(__rest)?,
),
)
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::ehr::ehr::Ehr {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 6usize;
if self
.contributions
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self
.compositions
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.directory.is_some() {
__n += 1;
}
if self.folders.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.tags.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "EHR", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "EHR")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "system_id", &self.system_id)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "ehr_id", &self.ehr_id)?;
if let Some(__v) = &self.contributions
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "contributions", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "ehr_status", &self.ehr_status)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "ehr_access", &self.ehr_access)?;
if let Some(__v) = &self.compositions
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "compositions", __v)?;
}
if let Some(__v) = &self.directory {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "directory", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_created",
&self.time_created,
)?;
if let Some(__v) = &self.folders
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "folders", __v)?;
}
if let Some(__v) = &self.tags
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "tags", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::ehr::ehr::Ehr {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"compositions",
"contributions",
"directory",
"ehr_access",
"ehr_id",
"ehr_status",
"folders",
"system_id",
"tags",
"time_created",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"system_id" => ::core::result::Result::Ok(__Field::__F0),
"ehr_id" => ::core::result::Result::Ok(__Field::__F1),
"contributions" => ::core::result::Result::Ok(__Field::__F2),
"ehr_status" => ::core::result::Result::Ok(__Field::__F3),
"ehr_access" => ::core::result::Result::Ok(__Field::__F4),
"compositions" => ::core::result::Result::Ok(__Field::__F5),
"directory" => ::core::result::Result::Ok(__Field::__F6),
"time_created" => ::core::result::Result::Ok(__Field::__F7),
"folders" => ::core::result::Result::Ok(__Field::__F8),
"tags" => ::core::result::Result::Ok(__Field::__F9),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(__v, "EHR", __FIELDS),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::ehr::ehr::Ehr;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EHR` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<_> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<_> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<_> = None;
let mut __s9: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("EHR"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("system_id"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("ehr_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("contributions"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("ehr_status"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("ehr_access"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("compositions"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("directory"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_created"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("folders"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("tags"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::ehr::ehr::Ehr {
system_id: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("system_id"))?,
ehr_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("ehr_id"))?,
contributions: __s2,
ehr_status: __s3
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("ehr_status"))?,
ehr_access: __s4
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("ehr_access"))?,
compositions: __s5,
directory: __s6.flatten(),
time_created: __s7
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("time_created"))?,
folders: __s8,
tags: __s9,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "EHR", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::ehr::ehr_access::EhrAccess {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.settings.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "EHR_ACCESS", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "EHR_ACCESS")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
if let Some(__v) = &self.settings {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "settings", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::ehr::ehr_access::EhrAccess {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"feeder_audit",
"links",
"name",
"settings",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"settings" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EHR_ACCESS",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::ehr::ehr_access::EhrAccess;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EHR_ACCESS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("EHR_ACCESS"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("settings"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::ehr::ehr_access::EhrAccess {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
settings: __s6.flatten(),
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "EHR_ACCESS", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::ehr::ehr_status::EhrStatus {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 6usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.other_details.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "EHR_STATUS", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "EHR_STATUS")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "subject", &self.subject)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"is_queryable",
&self.is_queryable,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"is_modifiable",
&self.is_modifiable,
)?;
if let Some(__v) = &self.other_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "other_details", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::ehr::ehr_status::EhrStatus {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"feeder_audit",
"is_modifiable",
"is_queryable",
"links",
"name",
"other_details",
"subject",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"subject" => ::core::result::Result::Ok(__Field::__F6),
"is_queryable" => ::core::result::Result::Ok(__Field::__F7),
"is_modifiable" => ::core::result::Result::Ok(__Field::__F8),
"other_details" => ::core::result::Result::Ok(__Field::__F9),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EHR_STATUS",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::ehr::ehr_status::EhrStatus;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EHR_STATUS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("EHR_STATUS"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("subject"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("is_queryable"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("is_modifiable"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_details"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::ehr::ehr_status::EhrStatus {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
subject: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("subject"))?,
is_queryable: __s7
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("is_queryable"))?,
is_modifiable: __s8
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("is_modifiable"))?,
other_details: __s9.flatten(),
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "EHR_STATUS", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::data_structures::representation::element::Element {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.null_flavour.is_some() {
__n += 1;
}
if self.value.is_some() {
__n += 1;
}
if self.null_reason.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "ELEMENT", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ELEMENT")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
if let Some(__v) = &self.null_flavour {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "null_flavour", __v)?;
}
if let Some(__v) = &self.value {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", __v)?;
}
if let Some(__v) = &self.null_reason {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "null_reason", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::data_structures::representation::element::Element
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"feeder_audit",
"links",
"name",
"null_flavour",
"null_reason",
"uid",
"value",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"null_flavour" => ::core::result::Result::Ok(__Field::__F6),
"value" => ::core::result::Result::Ok(__Field::__F7),
"null_reason" => ::core::result::Result::Ok(__Field::__F8),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "ELEMENT", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_structures::representation::element::Element;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ELEMENT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ELEMENT"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("null_flavour"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("null_reason"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::data_structures::representation::element::Element {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
null_flavour: __s6.flatten(),
value: __s7.flatten(),
null_reason: __s8.flatten(),
},
)
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "ELEMENT", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::composition::content::entry::entry::Entry {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::composition::content::entry::entry::Entry::Action(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::composition::content::entry::entry::Entry::AdminEntry(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::composition::content::entry::entry::Entry::Evaluation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::composition::content::entry::entry::Entry::Instruction(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::composition::content::entry::entry::Entry::Observation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::composition::content::entry::entry::Entry {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &[
"ACTION",
"ADMIN_ENTRY",
"EVALUATION",
"INSTRUCTION",
"OBSERVATION",
];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::composition::content::entry::entry::Entry;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ENTRY` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"ACTION" => ::core::result::Result::Ok(
crate::v1_2::composition::content::entry::entry::Entry::Action(
::serde::Deserialize::deserialize(__rest)?,
),
),
"ADMIN_ENTRY" => ::core::result::Result::Ok(
crate::v1_2::composition::content::entry::entry::Entry::AdminEntry(
::serde::Deserialize::deserialize(__rest)?,
),
),
"EVALUATION" => ::core::result::Result::Ok(
crate::v1_2::composition::content::entry::entry::Entry::Evaluation(
::serde::Deserialize::deserialize(__rest)?,
),
),
"INSTRUCTION" => ::core::result::Result::Ok(
crate::v1_2::composition::content::entry::entry::Entry::Instruction(
::serde::Deserialize::deserialize(__rest)?,
),
),
"OBSERVATION" => ::core::result::Result::Ok(
crate::v1_2::composition::content::entry::entry::Entry::Observation(
::serde::Deserialize::deserialize(__rest)?,
),
),
__other => ::core::result::Result::Err(
::openehr_base::serde_support::unexpected_type(
"ENTRY",
__other,
"ACTION, ADMIN_ENTRY, EVALUATION, INSTRUCTION, OBSERVATION",
),
),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"ENTRY",
&__other,
"ACTION, ADMIN_ENTRY, EVALUATION, INSTRUCTION, OBSERVATION",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"ENTRY",
"ACTION, ADMIN_ENTRY, EVALUATION, INSTRUCTION, OBSERVATION",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::composition::content::entry::evaluation::Evaluation {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 7usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self
.other_participations
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.workflow_id.is_some() {
__n += 1;
}
if self.provider.is_some() {
__n += 1;
}
if self.protocol.is_some() {
__n += 1;
}
if self.guideline_id.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "EVALUATION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "EVALUATION")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "language", &self.language)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "encoding", &self.encoding)?;
if let Some(__v) = &self.other_participations
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "other_participations", __v)?;
}
if let Some(__v) = &self.workflow_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "workflow_id", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "subject", &self.subject)?;
if let Some(__v) = &self.provider {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "provider", __v)?;
}
if let Some(__v) = &self.protocol {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "protocol", __v)?;
}
if let Some(__v) = &self.guideline_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "guideline_id", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "data", &self.data)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::composition::content::entry::evaluation::Evaluation
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"data",
"encoding",
"feeder_audit",
"guideline_id",
"language",
"links",
"name",
"other_participations",
"protocol",
"provider",
"subject",
"uid",
"workflow_id",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
__F11,
__F12,
__F13,
__F14,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"language" => ::core::result::Result::Ok(__Field::__F6),
"encoding" => ::core::result::Result::Ok(__Field::__F7),
"other_participations" => ::core::result::Result::Ok(__Field::__F8),
"workflow_id" => ::core::result::Result::Ok(__Field::__F9),
"subject" => ::core::result::Result::Ok(__Field::__F10),
"provider" => ::core::result::Result::Ok(__Field::__F11),
"protocol" => ::core::result::Result::Ok(__Field::__F12),
"guideline_id" => ::core::result::Result::Ok(__Field::__F13),
"data" => ::core::result::Result::Ok(__Field::__F14),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EVALUATION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::composition::content::entry::evaluation::Evaluation;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EVALUATION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<_> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s10: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s11: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s12: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s13: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s14: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("EVALUATION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("language"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("encoding"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_participations"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("workflow_id"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("subject"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F11 => {
if __s11.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("provider"),
);
}
__s11 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F12 => {
if __s12.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("protocol"),
);
}
__s12 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F13 => {
if __s13.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("guideline_id"),
);
}
__s13 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F14 => {
if __s14.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("data"),
);
}
__s14 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::composition::content::entry::evaluation::Evaluation {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
language: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("language"))?,
encoding: __s7
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("encoding"))?,
other_participations: __s8,
workflow_id: __s9.flatten(),
subject: __s10
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("subject"))?,
provider: __s11.flatten(),
protocol: __s12.flatten(),
guideline_id: __s13.flatten(),
data: __s14
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("data"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "EVALUATION", __FIELDS, __Visitor)
}
}
impl<T: ::serde::Serialize> ::serde::Serialize
for crate::v1_2::data_structures::history::event::Event<T>
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::data_structures::history::event::Event::IntervalEvent(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_structures::history::event::Event::PointEvent(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::Deserialize<'de>
for crate::v1_2::data_structures::history::event::Event<T>
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["INTERVAL_EVENT", "POINT_EVENT"];
struct __Visitor<T>(::core::marker::PhantomData<(T,)>);
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::de::Visitor<'de> for __Visitor<T> {
type Value = crate::v1_2::data_structures::history::event::Event<T>;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EVENT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"INTERVAL_EVENT" => ::core::result::Result::Ok(
crate::v1_2::data_structures::history::event::Event::IntervalEvent(
::serde::Deserialize::deserialize(__rest)?,
),
),
"POINT_EVENT" => ::core::result::Result::Ok(
crate::v1_2::data_structures::history::event::Event::PointEvent(
::serde::Deserialize::deserialize(__rest)?,
),
),
__other => ::core::result::Result::Err(
::openehr_base::serde_support::unexpected_type(
"EVENT",
__other,
"INTERVAL_EVENT, POINT_EVENT",
),
),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"EVENT",
&__other,
"INTERVAL_EVENT, POINT_EVENT",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"EVENT",
"INTERVAL_EVENT, POINT_EVENT",
))
}
}
}
}
::serde::Deserializer::deserialize_map(
__deserializer,
__Visitor(::core::marker::PhantomData),
)
}
}
impl ::serde::Serialize for crate::v1_2::composition::event_context::EventContext {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.end_time.is_some() {
__n += 1;
}
if self.location.is_some() {
__n += 1;
}
if self.other_context.is_some() {
__n += 1;
}
if self.health_care_facility.is_some() {
__n += 1;
}
if self
.participations
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "EVENT_CONTEXT", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "EVENT_CONTEXT")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "start_time", &self.start_time)?;
if let Some(__v) = &self.end_time {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "end_time", __v)?;
}
if let Some(__v) = &self.location {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "location", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "setting", &self.setting)?;
if let Some(__v) = &self.other_context {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "other_context", __v)?;
}
if let Some(__v) = &self.health_care_facility {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "health_care_facility", __v)?;
}
if let Some(__v) = &self.participations
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "participations", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::composition::event_context::EventContext {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"end_time",
"health_care_facility",
"location",
"other_context",
"participations",
"setting",
"start_time",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"start_time" => ::core::result::Result::Ok(__Field::__F0),
"end_time" => ::core::result::Result::Ok(__Field::__F1),
"location" => ::core::result::Result::Ok(__Field::__F2),
"setting" => ::core::result::Result::Ok(__Field::__F3),
"other_context" => ::core::result::Result::Ok(__Field::__F4),
"health_care_facility" => ::core::result::Result::Ok(__Field::__F5),
"participations" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EVENT_CONTEXT",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::composition::event_context::EventContext;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EVENT_CONTEXT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("EVENT_CONTEXT"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("start_time"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("end_time"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("location"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("setting"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_context"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("health_care_facility"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("participations"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::composition::event_context::EventContext {
start_time: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("start_time"))?,
end_time: __s1.flatten(),
location: __s2.flatten(),
setting: __s3
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("setting"))?,
other_context: __s4.flatten(),
health_care_facility: __s5.flatten(),
participations: __s6,
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"EVENT_CONTEXT",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::ehr_extract::common::extract::Extract {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 6usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.chapters.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.specification.is_some() {
__n += 1;
}
if self.request_id.is_some() {
__n += 1;
}
if self
.participations
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "EXTRACT", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "EXTRACT")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
if let Some(__v) = &self.chapters
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "chapters", __v)?;
}
if let Some(__v) = &self.specification {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "specification", __v)?;
}
if let Some(__v) = &self.request_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "request_id", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_created",
&self.time_created,
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "system_id", &self.system_id)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"sequence_nr",
&self.sequence_nr,
)?;
if let Some(__v) = &self.participations
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "participations", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::ehr_extract::common::extract::Extract {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"chapters",
"feeder_audit",
"links",
"name",
"participations",
"request_id",
"sequence_nr",
"specification",
"system_id",
"time_created",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
__F11,
__F12,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"chapters" => ::core::result::Result::Ok(__Field::__F6),
"specification" => ::core::result::Result::Ok(__Field::__F7),
"request_id" => ::core::result::Result::Ok(__Field::__F8),
"time_created" => ::core::result::Result::Ok(__Field::__F9),
"system_id" => ::core::result::Result::Ok(__Field::__F10),
"sequence_nr" => ::core::result::Result::Ok(__Field::__F11),
"participations" => ::core::result::Result::Ok(__Field::__F12),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "EXTRACT", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::ehr_extract::common::extract::Extract;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s10: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s11: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s12: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("EXTRACT"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("chapters"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("specification"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("request_id"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_created"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("system_id"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F11 => {
if __s11.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("sequence_nr"),
);
}
__s11 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F12 => {
if __s12.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("participations"),
);
}
__s12 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::ehr_extract::common::extract::Extract {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
chapters: __s6,
specification: __s7.flatten(),
request_id: __s8.flatten(),
time_created: __s9
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("time_created"))?,
system_id: __s10
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("system_id"))?,
sequence_nr: __s11
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("sequence_nr"))?,
participations: __s12,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "EXTRACT", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize
for crate::v1_2::ehr_extract::common::extract_action_request::ExtractActionRequest
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 6usize;
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "EXTRACT_ACTION_REQUEST", __n)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"_type",
"EXTRACT_ACTION_REQUEST",
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "request_id", &self.request_id)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "action", &self.action)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::ehr_extract::common::extract_action_request::ExtractActionRequest
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"action",
"archetype_details",
"archetype_node_id",
"feeder_audit",
"links",
"name",
"request_id",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"request_id" => ::core::result::Result::Ok(__Field::__F6),
"action" => ::core::result::Result::Ok(__Field::__F7),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EXTRACT_ACTION_REQUEST",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value =
crate::v1_2::ehr_extract::common::extract_action_request::ExtractActionRequest;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT_ACTION_REQUEST` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType(
"EXTRACT_ACTION_REQUEST",
),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("request_id"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("action"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::ehr_extract::common::extract_action_request::ExtractActionRequest {
name: __s0.flatten().ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten().ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
request_id: __s6.flatten().ok_or_else(|| ::serde::de::Error::missing_field("request_id"))?,
action: __s7.flatten().ok_or_else(|| ::serde::de::Error::missing_field("action"))?,
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"EXTRACT_ACTION_REQUEST",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::ehr_extract::common::extract_chapter::ExtractChapterData {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.items.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "EXTRACT_CHAPTER", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "EXTRACT_CHAPTER")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
if let Some(__v) = &self.items
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "items", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::ehr_extract::common::extract_chapter::ExtractChapterData
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"feeder_audit",
"items",
"links",
"name",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"items" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EXTRACT_CHAPTER",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::ehr_extract::common::extract_chapter::ExtractChapterData;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT_CHAPTER` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("EXTRACT_CHAPTER"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("items"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::ehr_extract::common::extract_chapter::ExtractChapterData {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
items: __s6,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"EXTRACT_CHAPTER",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::ehr_extract::common::extract_chapter::ExtractChapter {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::ehr_extract::common::extract_chapter::ExtractChapter::ExtractEntityChapter(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_2::ehr_extract::common::extract_chapter::ExtractChapter::ExtractChapter(__x) => ::serde::Serialize::serialize(__x, __serializer),
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::ehr_extract::common::extract_chapter::ExtractChapter
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["EXTRACT_CHAPTER", "EXTRACT_ENTITY_CHAPTER"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::ehr_extract::common::extract_chapter::ExtractChapter;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT_CHAPTER` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"EXTRACT_CHAPTER" => ::core::result::Result::Ok(crate::v1_2::ehr_extract::common::extract_chapter::ExtractChapter::ExtractChapter(::serde::Deserialize::deserialize(__rest)?)),
"EXTRACT_ENTITY_CHAPTER" => ::core::result::Result::Ok(crate::v1_2::ehr_extract::common::extract_chapter::ExtractChapter::ExtractEntityChapter(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("EXTRACT_CHAPTER", __other, "EXTRACT_CHAPTER, EXTRACT_ENTITY_CHAPTER")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"EXTRACT_CHAPTER",
&__other,
"EXTRACT_CHAPTER, EXTRACT_ENTITY_CHAPTER",
))
}
None => {
let __rest =
::openehr_base::serde_support::TaggedRest::new(None, __buffered, __map);
::core::result::Result::Ok(crate::v1_2::ehr_extract::common::extract_chapter::ExtractChapter::ExtractChapter(::serde::Deserialize::deserialize(__rest)?))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize
for crate::v1_2::ehr_extract::common::extract_content_item::ExtractContentItem
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::ehr_extract::common::extract_content_item::ExtractContentItem::GenericContentItem(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_2::ehr_extract::common::extract_content_item::ExtractContentItem::OpenehrContentItem(__x) => ::serde::Serialize::serialize(__x, __serializer),
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::ehr_extract::common::extract_content_item::ExtractContentItem
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["GENERIC_CONTENT_ITEM", "OPENEHR_CONTENT_ITEM"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::ehr_extract::common::extract_content_item::ExtractContentItem;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT_CONTENT_ITEM` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"GENERIC_CONTENT_ITEM" => ::core::result::Result::Ok(crate::v1_2::ehr_extract::common::extract_content_item::ExtractContentItem::GenericContentItem(::serde::Deserialize::deserialize(__rest)?)),
"OPENEHR_CONTENT_ITEM" => ::core::result::Result::Ok(crate::v1_2::ehr_extract::common::extract_content_item::ExtractContentItem::OpenehrContentItem(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("EXTRACT_CONTENT_ITEM", __other, "GENERIC_CONTENT_ITEM, OPENEHR_CONTENT_ITEM")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"EXTRACT_CONTENT_ITEM",
&__other,
"GENERIC_CONTENT_ITEM, OPENEHR_CONTENT_ITEM",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"EXTRACT_CONTENT_ITEM",
"GENERIC_CONTENT_ITEM, OPENEHR_CONTENT_ITEM",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize
for crate::v1_2::ehr_extract::common::extract_entity_chapter::ExtractEntityChapter
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.items.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "EXTRACT_ENTITY_CHAPTER", __n)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"_type",
"EXTRACT_ENTITY_CHAPTER",
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
if let Some(__v) = &self.items
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "items", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"extract_id_key",
&self.extract_id_key,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::ehr_extract::common::extract_entity_chapter::ExtractEntityChapter
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"extract_id_key",
"feeder_audit",
"items",
"links",
"name",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"items" => ::core::result::Result::Ok(__Field::__F6),
"extract_id_key" => ::core::result::Result::Ok(__Field::__F7),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EXTRACT_ENTITY_CHAPTER",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value =
crate::v1_2::ehr_extract::common::extract_entity_chapter::ExtractEntityChapter;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT_ENTITY_CHAPTER` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType(
"EXTRACT_ENTITY_CHAPTER",
),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("items"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("extract_id_key"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::ehr_extract::common::extract_entity_chapter::ExtractEntityChapter {
name: __s0.flatten().ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
items: __s6,
extract_id_key: __s7.flatten().ok_or_else(|| ::serde::de::Error::missing_field("extract_id_key"))?,
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"EXTRACT_ENTITY_CHAPTER",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_2::ehr_extract::common::extract_entity_manifest::ExtractEntityManifest
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self.ehr_id.is_some() {
__n += 1;
}
if self.subject_id.is_some() {
__n += 1;
}
if self.other_ids.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.item_list.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "EXTRACT_ENTITY_MANIFEST", __n)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"_type",
"EXTRACT_ENTITY_MANIFEST",
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"extract_id_key",
&self.extract_id_key,
)?;
if let Some(__v) = &self.ehr_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "ehr_id", __v)?;
}
if let Some(__v) = &self.subject_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "subject_id", __v)?;
}
if let Some(__v) = &self.other_ids
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "other_ids", __v)?;
}
if let Some(__v) = &self.item_list
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "item_list", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::ehr_extract::common::extract_entity_manifest::ExtractEntityManifest
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"ehr_id",
"extract_id_key",
"item_list",
"other_ids",
"subject_id",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"extract_id_key" => ::core::result::Result::Ok(__Field::__F0),
"ehr_id" => ::core::result::Result::Ok(__Field::__F1),
"subject_id" => ::core::result::Result::Ok(__Field::__F2),
"other_ids" => ::core::result::Result::Ok(__Field::__F3),
"item_list" => ::core::result::Result::Ok(__Field::__F4),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EXTRACT_ENTITY_MANIFEST",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value =
crate::v1_2::ehr_extract::common::extract_entity_manifest::ExtractEntityManifest;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT_ENTITY_MANIFEST` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType(
"EXTRACT_ENTITY_MANIFEST",
),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("extract_id_key"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("ehr_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("subject_id"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_ids"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("item_list"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::ehr_extract::common::extract_entity_manifest::ExtractEntityManifest {
extract_id_key: __s0.flatten().ok_or_else(|| ::serde::de::Error::missing_field("extract_id_key"))?,
ehr_id: __s1.flatten(),
subject_id: __s2.flatten(),
other_ids: __s3,
item_list: __s4,
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"EXTRACT_ENTITY_MANIFEST",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::ehr_extract::common::extract_error::ExtractError {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self.request_id.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "EXTRACT_ERROR", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "EXTRACT_ERROR")?;
if let Some(__v) = &self.request_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "request_id", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "reason", &self.reason)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::ehr_extract::common::extract_error::ExtractError
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["reason", "request_id"];
enum __Field {
__Type,
__F0,
__F1,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"request_id" => ::core::result::Result::Ok(__Field::__F0),
"reason" => ::core::result::Result::Ok(__Field::__F1),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EXTRACT_ERROR",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::ehr_extract::common::extract_error::ExtractError;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT_ERROR` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("EXTRACT_ERROR"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("request_id"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("reason"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::ehr_extract::common::extract_error::ExtractError {
request_id: __s0.flatten(),
reason: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("reason"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"EXTRACT_ERROR",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::ehr_extract::common::extract_folder::ExtractFolder {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.items.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "EXTRACT_FOLDER", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "EXTRACT_FOLDER")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
if let Some(__v) = &self.items
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "items", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::ehr_extract::common::extract_folder::ExtractFolder
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"feeder_audit",
"items",
"links",
"name",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"items" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EXTRACT_FOLDER",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::ehr_extract::common::extract_folder::ExtractFolder;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT_FOLDER` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("EXTRACT_FOLDER"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("items"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::ehr_extract::common::extract_folder::ExtractFolder {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
items: __s6,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"EXTRACT_FOLDER",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::ehr_extract::common::extract_item::ExtractItem {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::ehr_extract::common::extract_item::ExtractItem::ExtractFolder(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::ehr_extract::common::extract_item::ExtractItem::GenericContentItem(
__x,
) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_2::ehr_extract::common::extract_item::ExtractItem::OpenehrContentItem(
__x,
) => ::serde::Serialize::serialize(__x, __serializer),
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::ehr_extract::common::extract_item::ExtractItem
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &[
"EXTRACT_FOLDER",
"GENERIC_CONTENT_ITEM",
"OPENEHR_CONTENT_ITEM",
];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::ehr_extract::common::extract_item::ExtractItem;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT_ITEM` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"EXTRACT_FOLDER" => ::core::result::Result::Ok(crate::v1_2::ehr_extract::common::extract_item::ExtractItem::ExtractFolder(::serde::Deserialize::deserialize(__rest)?)),
"GENERIC_CONTENT_ITEM" => ::core::result::Result::Ok(crate::v1_2::ehr_extract::common::extract_item::ExtractItem::GenericContentItem(::serde::Deserialize::deserialize(__rest)?)),
"OPENEHR_CONTENT_ITEM" => ::core::result::Result::Ok(crate::v1_2::ehr_extract::common::extract_item::ExtractItem::OpenehrContentItem(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("EXTRACT_ITEM", __other, "EXTRACT_FOLDER, GENERIC_CONTENT_ITEM, OPENEHR_CONTENT_ITEM")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"EXTRACT_ITEM",
&__other,
"EXTRACT_FOLDER, GENERIC_CONTENT_ITEM, OPENEHR_CONTENT_ITEM",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"EXTRACT_ITEM",
"EXTRACT_FOLDER, GENERIC_CONTENT_ITEM, OPENEHR_CONTENT_ITEM",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::ehr_extract::common::extract_manifest::ExtractManifest {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "EXTRACT_MANIFEST", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "EXTRACT_MANIFEST")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "entities", &self.entities)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::ehr_extract::common::extract_manifest::ExtractManifest
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["entities"];
enum __Field {
__Type,
__F0,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"entities" => ::core::result::Result::Ok(__Field::__F0),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EXTRACT_MANIFEST",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::ehr_extract::common::extract_manifest::ExtractManifest;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT_MANIFEST` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("EXTRACT_MANIFEST"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("entities"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::ehr_extract::common::extract_manifest::ExtractManifest {
entities: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("entities"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"EXTRACT_MANIFEST",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_2::ehr_extract::common::extract_participation::ExtractParticipation
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.time.is_some() {
__n += 1;
}
if self.mode.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "EXTRACT_PARTICIPATION", __n)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"_type",
"EXTRACT_PARTICIPATION",
)?;
if let Some(__v) = &self.time {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "time", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "function", &self.function)?;
if let Some(__v) = &self.mode {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "mode", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "performer", &self.performer)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::ehr_extract::common::extract_participation::ExtractParticipation
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["function", "mode", "performer", "time"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"time" => ::core::result::Result::Ok(__Field::__F0),
"function" => ::core::result::Result::Ok(__Field::__F1),
"mode" => ::core::result::Result::Ok(__Field::__F2),
"performer" => ::core::result::Result::Ok(__Field::__F3),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EXTRACT_PARTICIPATION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value =
crate::v1_2::ehr_extract::common::extract_participation::ExtractParticipation;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT_PARTICIPATION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType(
"EXTRACT_PARTICIPATION",
),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("function"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("mode"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("performer"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::ehr_extract::common::extract_participation::ExtractParticipation {
time: __s0.flatten(),
function: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("function"))?,
mode: __s2.flatten(),
performer: __s3
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("performer"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"EXTRACT_PARTICIPATION",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::ehr_extract::common::extract_request::ExtractRequest {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 5usize;
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.update_spec.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "EXTRACT_REQUEST", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "EXTRACT_REQUEST")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"extract_spec",
&self.extract_spec,
)?;
if let Some(__v) = &self.update_spec {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "update_spec", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::ehr_extract::common::extract_request::ExtractRequest
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"extract_spec",
"feeder_audit",
"links",
"name",
"uid",
"update_spec",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"extract_spec" => ::core::result::Result::Ok(__Field::__F6),
"update_spec" => ::core::result::Result::Ok(__Field::__F7),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EXTRACT_REQUEST",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::ehr_extract::common::extract_request::ExtractRequest;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT_REQUEST` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("EXTRACT_REQUEST"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("extract_spec"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("update_spec"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::ehr_extract::common::extract_request::ExtractRequest {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
extract_spec: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("extract_spec"))?,
update_spec: __s7.flatten(),
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"EXTRACT_REQUEST",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::ehr_extract::common::extract_spec::ExtractSpec {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 6usize;
if self.version_spec.is_some() {
__n += 1;
}
if self.criteria.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.other_details.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "EXTRACT_SPEC", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "EXTRACT_SPEC")?;
if let Some(__v) = &self.version_spec {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "version_spec", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "manifest", &self.manifest)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"extract_type",
&self.extract_type,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"include_multimedia",
&self.include_multimedia,
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "priority", &self.priority)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "link_depth", &self.link_depth)?;
if let Some(__v) = &self.criteria
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "criteria", __v)?;
}
if let Some(__v) = &self.other_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "other_details", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::ehr_extract::common::extract_spec::ExtractSpec
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"criteria",
"extract_type",
"include_multimedia",
"link_depth",
"manifest",
"other_details",
"priority",
"version_spec",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"version_spec" => ::core::result::Result::Ok(__Field::__F0),
"manifest" => ::core::result::Result::Ok(__Field::__F1),
"extract_type" => ::core::result::Result::Ok(__Field::__F2),
"include_multimedia" => ::core::result::Result::Ok(__Field::__F3),
"priority" => ::core::result::Result::Ok(__Field::__F4),
"link_depth" => ::core::result::Result::Ok(__Field::__F5),
"criteria" => ::core::result::Result::Ok(__Field::__F6),
"other_details" => ::core::result::Result::Ok(__Field::__F7),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EXTRACT_SPEC",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::ehr_extract::common::extract_spec::ExtractSpec;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT_SPEC` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("EXTRACT_SPEC"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("version_spec"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("manifest"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("extract_type"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("include_multimedia"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("priority"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("link_depth"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("criteria"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_details"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::ehr_extract::common::extract_spec::ExtractSpec {
version_spec: __s0.flatten(),
manifest: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("manifest"))?,
extract_type: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("extract_type"))?,
include_multimedia: __s3.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("include_multimedia")
})?,
priority: __s4
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("priority"))?,
link_depth: __s5
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("link_depth"))?,
criteria: __s6,
other_details: __s7.flatten(),
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"EXTRACT_SPEC",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_2::ehr_extract::common::extract_update_spec::ExtractUpdateSpec
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.repeat_period.is_some() {
__n += 1;
}
if self
.trigger_events
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "EXTRACT_UPDATE_SPEC", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "EXTRACT_UPDATE_SPEC")?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"persist_in_server",
&self.persist_in_server,
)?;
if let Some(__v) = &self.repeat_period {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "repeat_period", __v)?;
}
if let Some(__v) = &self.trigger_events
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "trigger_events", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"update_method",
&self.update_method,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::ehr_extract::common::extract_update_spec::ExtractUpdateSpec
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"persist_in_server",
"repeat_period",
"trigger_events",
"update_method",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"persist_in_server" => ::core::result::Result::Ok(__Field::__F0),
"repeat_period" => ::core::result::Result::Ok(__Field::__F1),
"trigger_events" => ::core::result::Result::Ok(__Field::__F2),
"update_method" => ::core::result::Result::Ok(__Field::__F3),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EXTRACT_UPDATE_SPEC",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::ehr_extract::common::extract_update_spec::ExtractUpdateSpec;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT_UPDATE_SPEC` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<_> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("EXTRACT_UPDATE_SPEC"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("persist_in_server"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("repeat_period"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("trigger_events"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("update_method"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::ehr_extract::common::extract_update_spec::ExtractUpdateSpec {
persist_in_server: __s0.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("persist_in_server")
})?,
repeat_period: __s1.flatten(),
trigger_events: __s2,
update_method: __s3
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("update_method"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"EXTRACT_UPDATE_SPEC",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_2::ehr_extract::common::extract_version_spec::ExtractVersionSpec
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.commit_time_interval.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "EXTRACT_VERSION_SPEC", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "EXTRACT_VERSION_SPEC")?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"include_all_versions",
&self.include_all_versions,
)?;
if let Some(__v) = &self.commit_time_interval {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "commit_time_interval", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"include_revision_history",
&self.include_revision_history,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"include_data",
&self.include_data,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::ehr_extract::common::extract_version_spec::ExtractVersionSpec
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"commit_time_interval",
"include_all_versions",
"include_data",
"include_revision_history",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"include_all_versions" => ::core::result::Result::Ok(__Field::__F0),
"commit_time_interval" => ::core::result::Result::Ok(__Field::__F1),
"include_revision_history" => ::core::result::Result::Ok(__Field::__F2),
"include_data" => ::core::result::Result::Ok(__Field::__F3),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"EXTRACT_VERSION_SPEC",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::ehr_extract::common::extract_version_spec::ExtractVersionSpec;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `EXTRACT_VERSION_SPEC` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("EXTRACT_VERSION_SPEC"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("include_all_versions"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("commit_time_interval"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("include_revision_history"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("include_data"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::ehr_extract::common::extract_version_spec::ExtractVersionSpec {
include_all_versions: __s0.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("include_all_versions")
})?,
commit_time_interval: __s1.flatten(),
include_revision_history: __s2.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("include_revision_history")
})?,
include_data: __s3
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("include_data"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"EXTRACT_VERSION_SPEC",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::common::archetyped::feeder_audit::FeederAudit {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self
.originating_system_item_ids
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self
.feeder_system_item_ids
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.original_content.is_some() {
__n += 1;
}
if self.feeder_system_audit.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "FEEDER_AUDIT", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "FEEDER_AUDIT")?;
if let Some(__v) = &self.originating_system_item_ids
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"originating_system_item_ids",
__v,
)?;
}
if let Some(__v) = &self.feeder_system_item_ids
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"feeder_system_item_ids",
__v,
)?;
}
if let Some(__v) = &self.original_content {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "original_content", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"originating_system_audit",
&self.originating_system_audit,
)?;
if let Some(__v) = &self.feeder_system_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_system_audit", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::common::archetyped::feeder_audit::FeederAudit {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"feeder_system_audit",
"feeder_system_item_ids",
"original_content",
"originating_system_audit",
"originating_system_item_ids",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"originating_system_item_ids" => {
::core::result::Result::Ok(__Field::__F0)
}
"feeder_system_item_ids" => ::core::result::Result::Ok(__Field::__F1),
"original_content" => ::core::result::Result::Ok(__Field::__F2),
"originating_system_audit" => ::core::result::Result::Ok(__Field::__F3),
"feeder_system_audit" => ::core::result::Result::Ok(__Field::__F4),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"FEEDER_AUDIT",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::common::archetyped::feeder_audit::FeederAudit;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `FEEDER_AUDIT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<_> = None;
let mut __s1: ::core::option::Option<_> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("FEEDER_AUDIT"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field(
"originating_system_item_ids",
),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_system_item_ids"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("original_content"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("originating_system_audit"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_system_audit"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::common::archetyped::feeder_audit::FeederAudit {
originating_system_item_ids: __s0,
feeder_system_item_ids: __s1,
original_content: __s2.flatten(),
originating_system_audit: __s3.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("originating_system_audit")
})?,
feeder_system_audit: __s4.flatten(),
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"FEEDER_AUDIT",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_2::common::archetyped::feeder_audit_details::FeederAuditDetails
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self.location.is_some() {
__n += 1;
}
if self.subject.is_some() {
__n += 1;
}
if self.provider.is_some() {
__n += 1;
}
if self.time.is_some() {
__n += 1;
}
if self.version_id.is_some() {
__n += 1;
}
if self.other_details.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "FEEDER_AUDIT_DETAILS", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "FEEDER_AUDIT_DETAILS")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "system_id", &self.system_id)?;
if let Some(__v) = &self.location {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "location", __v)?;
}
if let Some(__v) = &self.subject {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "subject", __v)?;
}
if let Some(__v) = &self.provider {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "provider", __v)?;
}
if let Some(__v) = &self.time {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "time", __v)?;
}
if let Some(__v) = &self.version_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "version_id", __v)?;
}
if let Some(__v) = &self.other_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "other_details", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::common::archetyped::feeder_audit_details::FeederAuditDetails
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"location",
"other_details",
"provider",
"subject",
"system_id",
"time",
"version_id",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"system_id" => ::core::result::Result::Ok(__Field::__F0),
"location" => ::core::result::Result::Ok(__Field::__F1),
"subject" => ::core::result::Result::Ok(__Field::__F2),
"provider" => ::core::result::Result::Ok(__Field::__F3),
"time" => ::core::result::Result::Ok(__Field::__F4),
"version_id" => ::core::result::Result::Ok(__Field::__F5),
"other_details" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"FEEDER_AUDIT_DETAILS",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::common::archetyped::feeder_audit_details::FeederAuditDetails;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `FEEDER_AUDIT_DETAILS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("FEEDER_AUDIT_DETAILS"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("system_id"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("location"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("subject"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("provider"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("version_id"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_details"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::common::archetyped::feeder_audit_details::FeederAuditDetails {
system_id: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("system_id"))?,
location: __s1.flatten(),
subject: __s2.flatten(),
provider: __s3.flatten(),
time: __s4.flatten(),
version_id: __s5.flatten(),
other_details: __s6.flatten(),
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"FEEDER_AUDIT_DETAILS",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::common::directory::folder::Folder {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.items.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.folders.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.details.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "FOLDER", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "FOLDER")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
if let Some(__v) = &self.items
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "items", __v)?;
}
if let Some(__v) = &self.folders
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "folders", __v)?;
}
if let Some(__v) = &self.details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "details", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::common::directory::folder::Folder {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"details",
"feeder_audit",
"folders",
"items",
"links",
"name",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"items" => ::core::result::Result::Ok(__Field::__F6),
"folders" => ::core::result::Result::Ok(__Field::__F7),
"details" => ::core::result::Result::Ok(__Field::__F8),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "FOLDER", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::common::directory::folder::Folder;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `FOLDER` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
let mut __s7: ::core::option::Option<_> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("FOLDER"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("items"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("folders"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("details"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::common::directory::folder::Folder {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
items: __s6,
folders: ::openehr_base::serde_support::refuse_empty_list(__s7, "folders")?,
details: __s8.flatten(),
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "FOLDER", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize
for crate::v1_2::ehr_extract::generic_extract::generic_content_item::GenericContentItem
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.is_changed.is_some() {
__n += 1;
}
if self.is_masked.is_some() {
__n += 1;
}
if self.item.is_some() {
__n += 1;
}
if self.item_type.is_some() {
__n += 1;
}
if self.item_type_version.is_some() {
__n += 1;
}
if self.author.is_some() {
__n += 1;
}
if self.creation_time.is_some() {
__n += 1;
}
if self.authoriser.is_some() {
__n += 1;
}
if self.authorisation_time.is_some() {
__n += 1;
}
if self.item_status.is_some() {
__n += 1;
}
if self.version_id.is_some() {
__n += 1;
}
if self.version_set_id.is_some() {
__n += 1;
}
if self.system_id.is_some() {
__n += 1;
}
if self.other_details.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "GENERIC_CONTENT_ITEM", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "GENERIC_CONTENT_ITEM")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "is_primary", &self.is_primary)?;
if let Some(__v) = &self.is_changed {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "is_changed", __v)?;
}
if let Some(__v) = &self.is_masked {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "is_masked", __v)?;
}
if let Some(__v) = &self.item {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "item", __v)?;
}
if let Some(__v) = &self.item_type {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "item_type", __v)?;
}
if let Some(__v) = &self.item_type_version {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "item_type_version", __v)?;
}
if let Some(__v) = &self.author {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "author", __v)?;
}
if let Some(__v) = &self.creation_time {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "creation_time", __v)?;
}
if let Some(__v) = &self.authoriser {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "authoriser", __v)?;
}
if let Some(__v) = &self.authorisation_time {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "authorisation_time", __v)?;
}
if let Some(__v) = &self.item_status {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "item_status", __v)?;
}
if let Some(__v) = &self.version_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "version_id", __v)?;
}
if let Some(__v) = &self.version_set_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "version_set_id", __v)?;
}
if let Some(__v) = &self.system_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "system_id", __v)?;
}
if let Some(__v) = &self.other_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "other_details", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::ehr_extract::generic_extract::generic_content_item::GenericContentItem
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"author",
"authorisation_time",
"authoriser",
"creation_time",
"feeder_audit",
"is_changed",
"is_masked",
"is_primary",
"item",
"item_status",
"item_type",
"item_type_version",
"links",
"name",
"other_details",
"system_id",
"uid",
"version_id",
"version_set_id",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
__F11,
__F12,
__F13,
__F14,
__F15,
__F16,
__F17,
__F18,
__F19,
__F20,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"is_primary" => ::core::result::Result::Ok(__Field::__F6),
"is_changed" => ::core::result::Result::Ok(__Field::__F7),
"is_masked" => ::core::result::Result::Ok(__Field::__F8),
"item" => ::core::result::Result::Ok(__Field::__F9),
"item_type" => ::core::result::Result::Ok(__Field::__F10),
"item_type_version" => ::core::result::Result::Ok(__Field::__F11),
"author" => ::core::result::Result::Ok(__Field::__F12),
"creation_time" => ::core::result::Result::Ok(__Field::__F13),
"authoriser" => ::core::result::Result::Ok(__Field::__F14),
"authorisation_time" => ::core::result::Result::Ok(__Field::__F15),
"item_status" => ::core::result::Result::Ok(__Field::__F16),
"version_id" => ::core::result::Result::Ok(__Field::__F17),
"version_set_id" => ::core::result::Result::Ok(__Field::__F18),
"system_id" => ::core::result::Result::Ok(__Field::__F19),
"other_details" => ::core::result::Result::Ok(__Field::__F20),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"GENERIC_CONTENT_ITEM",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value =
crate::v1_2::ehr_extract::generic_extract::generic_content_item::GenericContentItem;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `GENERIC_CONTENT_ITEM` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s10: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s11: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s12: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s13: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s14: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s15: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s16: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s17: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s18: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s19: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s20: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("GENERIC_CONTENT_ITEM"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("is_primary"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("is_changed"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("is_masked"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("item"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("item_type"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F11 => {
if __s11.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("item_type_version"),
);
}
__s11 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F12 => {
if __s12.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("author"),
);
}
__s12 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F13 => {
if __s13.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("creation_time"),
);
}
__s13 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F14 => {
if __s14.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("authoriser"),
);
}
__s14 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F15 => {
if __s15.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("authorisation_time"),
);
}
__s15 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F16 => {
if __s16.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("item_status"),
);
}
__s16 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F17 => {
if __s17.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("version_id"),
);
}
__s17 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F18 => {
if __s18.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("version_set_id"),
);
}
__s18 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F19 => {
if __s19.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("system_id"),
);
}
__s19 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F20 => {
if __s20.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_details"),
);
}
__s20 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::ehr_extract::generic_extract::generic_content_item::GenericContentItem {
name: __s0.flatten().ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
is_primary: __s6.flatten().ok_or_else(|| ::serde::de::Error::missing_field("is_primary"))?,
is_changed: __s7.flatten(),
is_masked: __s8.flatten(),
item: __s9.flatten(),
item_type: __s10.flatten(),
item_type_version: __s11.flatten(),
author: __s12.flatten(),
creation_time: __s13.flatten(),
authoriser: __s14.flatten(),
authorisation_time: __s15.flatten(),
item_status: __s16.flatten(),
version_id: __s17.flatten(),
version_set_id: __s18.flatten(),
system_id: __s19.flatten(),
other_details: __s20.flatten(),
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"GENERIC_CONTENT_ITEM",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::integration::generic_entry::GenericEntry {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "GENERIC_ENTRY", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "GENERIC_ENTRY")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "data", &self.data)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::integration::generic_entry::GenericEntry {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"data",
"feeder_audit",
"links",
"name",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"data" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"GENERIC_ENTRY",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::integration::generic_entry::GenericEntry;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `GENERIC_ENTRY` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("GENERIC_ENTRY"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("data"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::integration::generic_entry::GenericEntry {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
data: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("data"))?,
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"GENERIC_ENTRY",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::demographic::group::Group {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.contacts.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.details.is_some() {
__n += 1;
}
if self
.relationships
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.languages.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.roles.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "GROUP", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "GROUP")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "identities", &self.identities)?;
if let Some(__v) = &self.contacts
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "contacts", __v)?;
}
if let Some(__v) = &self.details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "details", __v)?;
}
if let Some(__v) = &self.relationships
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "relationships", __v)?;
}
if let Some(__v) = &self.languages
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "languages", __v)?;
}
if let Some(__v) = &self.roles
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "roles", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::demographic::group::Group {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"contacts",
"details",
"feeder_audit",
"identities",
"languages",
"links",
"name",
"relationships",
"roles",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
__F11,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"identities" => ::core::result::Result::Ok(__Field::__F6),
"contacts" => ::core::result::Result::Ok(__Field::__F7),
"details" => ::core::result::Result::Ok(__Field::__F8),
"relationships" => ::core::result::Result::Ok(__Field::__F9),
"languages" => ::core::result::Result::Ok(__Field::__F10),
"roles" => ::core::result::Result::Ok(__Field::__F11),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "GROUP", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::demographic::group::Group;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `GROUP` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<_> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<_> = None;
let mut __s10: ::core::option::Option<_> = None;
let mut __s11: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("GROUP"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("identities"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("contacts"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("details"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("relationships"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("languages"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F11 => {
if __s11.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("roles"),
);
}
__s11 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::demographic::group::Group {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
identities: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("identities"))?,
contacts: __s7,
details: __s8.flatten(),
relationships: __s9,
languages: ::openehr_base::serde_support::refuse_empty_list(
__s10,
"languages",
)?,
roles: __s11,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "GROUP", __FIELDS, __Visitor)
}
}
impl<T: ::serde::Serialize> ::serde::Serialize
for crate::v1_2::data_structures::history::history::History<T>
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.period.is_some() {
__n += 1;
}
if self.duration.is_some() {
__n += 1;
}
if self.summary.is_some() {
__n += 1;
}
if self.events.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "HISTORY", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "HISTORY")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "origin", &self.origin)?;
if let Some(__v) = &self.period {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "period", __v)?;
}
if let Some(__v) = &self.duration {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "duration", __v)?;
}
if let Some(__v) = &self.summary {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "summary", __v)?;
}
if let Some(__v) = &self.events
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "events", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::Deserialize<'de>
for crate::v1_2::data_structures::history::history::History<T>
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"duration",
"events",
"feeder_audit",
"links",
"name",
"origin",
"period",
"summary",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"origin" => ::core::result::Result::Ok(__Field::__F6),
"period" => ::core::result::Result::Ok(__Field::__F7),
"duration" => ::core::result::Result::Ok(__Field::__F8),
"summary" => ::core::result::Result::Ok(__Field::__F9),
"events" => ::core::result::Result::Ok(__Field::__F10),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "HISTORY", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor<T>(::core::marker::PhantomData<(T,)>);
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::de::Visitor<'de> for __Visitor<T> {
type Value = crate::v1_2::data_structures::history::history::History<T>;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `HISTORY` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s10: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("HISTORY"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("origin"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("period"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("duration"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("summary"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("events"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::data_structures::history::history::History {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
origin: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("origin"))?,
period: __s7.flatten(),
duration: __s8.flatten(),
summary: __s9.flatten(),
events: ::openehr_base::serde_support::refuse_empty_list(__s10, "events")?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"HISTORY",
__FIELDS,
__Visitor(::core::marker::PhantomData),
)
}
}
impl<T: ::serde::Serialize> ::serde::Serialize
for crate::v1_2::common::change_control::imported_version::ImportedVersion<T>
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.signature.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "IMPORTED_VERSION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "IMPORTED_VERSION")?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"contribution",
&self.contribution,
)?;
if let Some(__v) = &self.signature {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "signature", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"commit_audit",
&self.commit_audit,
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "item", &self.item)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::Deserialize<'de>
for crate::v1_2::common::change_control::imported_version::ImportedVersion<T>
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["commit_audit", "contribution", "item", "signature"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"contribution" => ::core::result::Result::Ok(__Field::__F0),
"signature" => ::core::result::Result::Ok(__Field::__F1),
"commit_audit" => ::core::result::Result::Ok(__Field::__F2),
"item" => ::core::result::Result::Ok(__Field::__F3),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"IMPORTED_VERSION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor<T>(::core::marker::PhantomData<(T,)>);
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::de::Visitor<'de> for __Visitor<T> {
type Value = crate::v1_2::common::change_control::imported_version::ImportedVersion<T>;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `IMPORTED_VERSION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("IMPORTED_VERSION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("contribution"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("signature"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("commit_audit"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("item"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::common::change_control::imported_version::ImportedVersion {
contribution: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("contribution"))?,
signature: __s1.flatten(),
commit_audit: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("commit_audit"))?,
item: __s3
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("item"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"IMPORTED_VERSION",
__FIELDS,
__Visitor(::core::marker::PhantomData),
)
}
}
impl ::serde::Serialize for crate::v1_2::composition::content::entry::instruction::Instruction {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 7usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self
.other_participations
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.workflow_id.is_some() {
__n += 1;
}
if self.provider.is_some() {
__n += 1;
}
if self.protocol.is_some() {
__n += 1;
}
if self.guideline_id.is_some() {
__n += 1;
}
if self.expiry_time.is_some() {
__n += 1;
}
if self.wf_definition.is_some() {
__n += 1;
}
if self.activities.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "INSTRUCTION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "INSTRUCTION")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "language", &self.language)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "encoding", &self.encoding)?;
if let Some(__v) = &self.other_participations
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "other_participations", __v)?;
}
if let Some(__v) = &self.workflow_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "workflow_id", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "subject", &self.subject)?;
if let Some(__v) = &self.provider {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "provider", __v)?;
}
if let Some(__v) = &self.protocol {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "protocol", __v)?;
}
if let Some(__v) = &self.guideline_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "guideline_id", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "narrative", &self.narrative)?;
if let Some(__v) = &self.expiry_time {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "expiry_time", __v)?;
}
if let Some(__v) = &self.wf_definition {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "wf_definition", __v)?;
}
if let Some(__v) = &self.activities
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "activities", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::composition::content::entry::instruction::Instruction
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"activities",
"archetype_details",
"archetype_node_id",
"encoding",
"expiry_time",
"feeder_audit",
"guideline_id",
"language",
"links",
"name",
"narrative",
"other_participations",
"protocol",
"provider",
"subject",
"uid",
"wf_definition",
"workflow_id",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
__F11,
__F12,
__F13,
__F14,
__F15,
__F16,
__F17,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"language" => ::core::result::Result::Ok(__Field::__F6),
"encoding" => ::core::result::Result::Ok(__Field::__F7),
"other_participations" => ::core::result::Result::Ok(__Field::__F8),
"workflow_id" => ::core::result::Result::Ok(__Field::__F9),
"subject" => ::core::result::Result::Ok(__Field::__F10),
"provider" => ::core::result::Result::Ok(__Field::__F11),
"protocol" => ::core::result::Result::Ok(__Field::__F12),
"guideline_id" => ::core::result::Result::Ok(__Field::__F13),
"narrative" => ::core::result::Result::Ok(__Field::__F14),
"expiry_time" => ::core::result::Result::Ok(__Field::__F15),
"wf_definition" => ::core::result::Result::Ok(__Field::__F16),
"activities" => ::core::result::Result::Ok(__Field::__F17),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"INSTRUCTION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::composition::content::entry::instruction::Instruction;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `INSTRUCTION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<_> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s10: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s11: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s12: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s13: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s14: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s15: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s16: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s17: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("INSTRUCTION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("language"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("encoding"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_participations"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("workflow_id"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("subject"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F11 => {
if __s11.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("provider"),
);
}
__s11 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F12 => {
if __s12.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("protocol"),
);
}
__s12 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F13 => {
if __s13.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("guideline_id"),
);
}
__s13 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F14 => {
if __s14.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("narrative"),
);
}
__s14 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F15 => {
if __s15.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("expiry_time"),
);
}
__s15 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F16 => {
if __s16.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("wf_definition"),
);
}
__s16 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F17 => {
if __s17.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("activities"),
);
}
__s17 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::composition::content::entry::instruction::Instruction {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
language: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("language"))?,
encoding: __s7
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("encoding"))?,
other_participations: __s8,
workflow_id: __s9.flatten(),
subject: __s10
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("subject"))?,
provider: __s11.flatten(),
protocol: __s12.flatten(),
guideline_id: __s13.flatten(),
narrative: __s14
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("narrative"))?,
expiry_time: __s15.flatten(),
wf_definition: __s16.flatten(),
activities: __s17,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"INSTRUCTION",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_2::composition::content::entry::instruction_details::InstructionDetails
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.wf_details.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "INSTRUCTION_DETAILS", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "INSTRUCTION_DETAILS")?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"instruction_id",
&self.instruction_id,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"activity_id",
&self.activity_id,
)?;
if let Some(__v) = &self.wf_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "wf_details", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::composition::content::entry::instruction_details::InstructionDetails
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["activity_id", "instruction_id", "wf_details"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"instruction_id" => ::core::result::Result::Ok(__Field::__F0),
"activity_id" => ::core::result::Result::Ok(__Field::__F1),
"wf_details" => ::core::result::Result::Ok(__Field::__F2),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"INSTRUCTION_DETAILS",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value =
crate::v1_2::composition::content::entry::instruction_details::InstructionDetails;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `INSTRUCTION_DETAILS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("INSTRUCTION_DETAILS"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("instruction_id"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("activity_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("wf_details"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::composition::content::entry::instruction_details::InstructionDetails {
instruction_id: __s0.flatten().ok_or_else(|| ::serde::de::Error::missing_field("instruction_id"))?,
activity_id: __s1.flatten().ok_or_else(|| ::serde::de::Error::missing_field("activity_id"))?,
wf_details: __s2.flatten(),
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"INSTRUCTION_DETAILS",
__FIELDS,
__Visitor,
)
}
}
impl<T: ::serde::Serialize> ::serde::Serialize
for crate::v1_2::data_structures::history::interval_event::IntervalEvent<T>
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 7usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.state.is_some() {
__n += 1;
}
if self.sample_count.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "INTERVAL_EVENT", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "INTERVAL_EVENT")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "time", &self.time)?;
if let Some(__v) = &self.state {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "state", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "data", &self.data)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "width", &self.width)?;
if let Some(__v) = &self.sample_count {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "sample_count", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"math_function",
&self.math_function,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::Deserialize<'de>
for crate::v1_2::data_structures::history::interval_event::IntervalEvent<T>
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"data",
"feeder_audit",
"links",
"math_function",
"name",
"sample_count",
"state",
"time",
"uid",
"width",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
__F11,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"time" => ::core::result::Result::Ok(__Field::__F6),
"state" => ::core::result::Result::Ok(__Field::__F7),
"data" => ::core::result::Result::Ok(__Field::__F8),
"width" => ::core::result::Result::Ok(__Field::__F9),
"sample_count" => ::core::result::Result::Ok(__Field::__F10),
"math_function" => ::core::result::Result::Ok(__Field::__F11),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"INTERVAL_EVENT",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor<T>(::core::marker::PhantomData<(T,)>);
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::de::Visitor<'de> for __Visitor<T> {
type Value = crate::v1_2::data_structures::history::interval_event::IntervalEvent<T>;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `INTERVAL_EVENT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s10: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s11: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("INTERVAL_EVENT"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("state"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("data"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("width"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("sample_count"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F11 => {
if __s11.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("math_function"),
);
}
__s11 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::data_structures::history::interval_event::IntervalEvent {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
time: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("time"))?,
state: __s7.flatten(),
data: __s8
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("data"))?,
width: __s9
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("width"))?,
sample_count: __s10.flatten(),
math_function: __s11
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("math_function"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"INTERVAL_EVENT",
__FIELDS,
__Visitor(::core::marker::PhantomData),
)
}
}
impl ::serde::Serialize
for crate::v1_2::composition::content::entry::ism_transition::IsmTransition
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self.transition.is_some() {
__n += 1;
}
if self.careflow_step.is_some() {
__n += 1;
}
if self.reason.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "ISM_TRANSITION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ISM_TRANSITION")?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"current_state",
&self.current_state,
)?;
if let Some(__v) = &self.transition {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "transition", __v)?;
}
if let Some(__v) = &self.careflow_step {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "careflow_step", __v)?;
}
if let Some(__v) = &self.reason
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "reason", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::composition::content::entry::ism_transition::IsmTransition
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["careflow_step", "current_state", "reason", "transition"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"current_state" => ::core::result::Result::Ok(__Field::__F0),
"transition" => ::core::result::Result::Ok(__Field::__F1),
"careflow_step" => ::core::result::Result::Ok(__Field::__F2),
"reason" => ::core::result::Result::Ok(__Field::__F3),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"ISM_TRANSITION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::composition::content::entry::ism_transition::IsmTransition;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ISM_TRANSITION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ISM_TRANSITION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("current_state"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("transition"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("careflow_step"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("reason"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::composition::content::entry::ism_transition::IsmTransition {
current_state: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("current_state"))?,
transition: __s1.flatten(),
careflow_step: __s2.flatten(),
reason: __s3,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"ISM_TRANSITION",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::data_structures::representation::item::Item {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::data_structures::representation::item::Item::Cluster(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::data_structures::representation::item::Item::Element(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::data_structures::representation::item::Item {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["CLUSTER", "ELEMENT"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_structures::representation::item::Item;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ITEM` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"CLUSTER" => ::core::result::Result::Ok(
crate::v1_2::data_structures::representation::item::Item::Cluster(
::serde::Deserialize::deserialize(__rest)?,
),
),
"ELEMENT" => ::core::result::Result::Ok(
crate::v1_2::data_structures::representation::item::Item::Element(
::serde::Deserialize::deserialize(__rest)?,
),
),
__other => ::core::result::Result::Err(
::openehr_base::serde_support::unexpected_type(
"ITEM",
__other,
"CLUSTER, ELEMENT",
),
),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"ITEM",
&__other,
"CLUSTER, ELEMENT",
))
}
None => ::core::result::Result::Err(
::openehr_base::serde_support::missing_type("ITEM", "CLUSTER, ELEMENT"),
),
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::data_structures::item_structure::item_list::ItemList {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.items.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "ITEM_LIST", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ITEM_LIST")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
if let Some(__v) = &self.items
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "items", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::data_structures::item_structure::item_list::ItemList
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"feeder_audit",
"items",
"links",
"name",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"items" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"ITEM_LIST",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_structures::item_structure::item_list::ItemList;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ITEM_LIST` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ITEM_LIST"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("items"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::data_structures::item_structure::item_list::ItemList {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
items: __s6,
},
)
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "ITEM_LIST", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::data_structures::item_structure::item_single::ItemSingle {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "ITEM_SINGLE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ITEM_SINGLE")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "item", &self.item)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::data_structures::item_structure::item_single::ItemSingle
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"feeder_audit",
"item",
"links",
"name",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"item" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"ITEM_SINGLE",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_structures::item_structure::item_single::ItemSingle;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ITEM_SINGLE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ITEM_SINGLE"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("item"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::data_structures::item_structure::item_single::ItemSingle {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
item: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("item"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"ITEM_SINGLE",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_2::data_structures::item_structure::item_structure::ItemStructure
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::data_structures::item_structure::item_structure::ItemStructure::ItemList(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_2::data_structures::item_structure::item_structure::ItemStructure::ItemSingle(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_2::data_structures::item_structure::item_structure::ItemStructure::ItemTable(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_2::data_structures::item_structure::item_structure::ItemStructure::ItemTree(__x) => ::serde::Serialize::serialize(__x, __serializer),
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::data_structures::item_structure::item_structure::ItemStructure
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["ITEM_LIST", "ITEM_SINGLE", "ITEM_TABLE", "ITEM_TREE"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value =
crate::v1_2::data_structures::item_structure::item_structure::ItemStructure;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ITEM_STRUCTURE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"ITEM_LIST" => ::core::result::Result::Ok(crate::v1_2::data_structures::item_structure::item_structure::ItemStructure::ItemList(::serde::Deserialize::deserialize(__rest)?)),
"ITEM_SINGLE" => ::core::result::Result::Ok(crate::v1_2::data_structures::item_structure::item_structure::ItemStructure::ItemSingle(::serde::Deserialize::deserialize(__rest)?)),
"ITEM_TABLE" => ::core::result::Result::Ok(crate::v1_2::data_structures::item_structure::item_structure::ItemStructure::ItemTable(::serde::Deserialize::deserialize(__rest)?)),
"ITEM_TREE" => ::core::result::Result::Ok(crate::v1_2::data_structures::item_structure::item_structure::ItemStructure::ItemTree(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("ITEM_STRUCTURE", __other, "ITEM_LIST, ITEM_SINGLE, ITEM_TABLE, ITEM_TREE")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"ITEM_STRUCTURE",
&__other,
"ITEM_LIST, ITEM_SINGLE, ITEM_TABLE, ITEM_TREE",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"ITEM_STRUCTURE",
"ITEM_LIST, ITEM_SINGLE, ITEM_TABLE, ITEM_TREE",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::data_structures::item_structure::item_table::ItemTable {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.rows.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "ITEM_TABLE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ITEM_TABLE")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
if let Some(__v) = &self.rows
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "rows", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::data_structures::item_structure::item_table::ItemTable
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"feeder_audit",
"links",
"name",
"rows",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"rows" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"ITEM_TABLE",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_structures::item_structure::item_table::ItemTable;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ITEM_TABLE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ITEM_TABLE"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("rows"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::data_structures::item_structure::item_table::ItemTable {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
rows: __s6,
},
)
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "ITEM_TABLE", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::common::tags::item_tag::ItemTag {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.value.is_some() {
__n += 1;
}
if self.target_path.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "ITEM_TAG", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ITEM_TAG")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "key", &self.key)?;
if let Some(__v) = &self.value {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "target", &self.target)?;
if let Some(__v) = &self.target_path {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "target_path", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "owner_id", &self.owner_id)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::common::tags::item_tag::ItemTag {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["key", "owner_id", "target", "target_path", "value"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"key" => ::core::result::Result::Ok(__Field::__F0),
"value" => ::core::result::Result::Ok(__Field::__F1),
"target" => ::core::result::Result::Ok(__Field::__F2),
"target_path" => ::core::result::Result::Ok(__Field::__F3),
"owner_id" => ::core::result::Result::Ok(__Field::__F4),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "ITEM_TAG", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::common::tags::item_tag::ItemTag;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ITEM_TAG` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ITEM_TAG"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("key"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("target"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("target_path"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("owner_id"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
let __a0: String = __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("key"))?;
let __a1: Option<String> = __s1.flatten();
let __a2: openehr_base::v1_3::base_types::identification::uid_based_id::UidBasedId =
__s2.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("target"))?;
let __a3: Option<String> = __s3.flatten();
let __a4: openehr_base::v1_3::base_types::identification::object_ref::ObjectRef =
__s4.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("owner_id"))?;
let __built =
crate::v1_2::common::tags::item_tag::ItemTag::new(__a0, __a1, __a2, __a3, __a4);
__built.map_err(|__e| ::serde::de::Error::custom(::std::format!("ITEM_TAG: {__e}")))
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "ITEM_TAG", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::data_structures::item_structure::item_tree::ItemTree {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.items.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "ITEM_TREE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ITEM_TREE")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
if let Some(__v) = &self.items
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "items", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::data_structures::item_structure::item_tree::ItemTree
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"feeder_audit",
"items",
"links",
"name",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"items" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"ITEM_TREE",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_structures::item_structure::item_tree::ItemTree;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ITEM_TREE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ITEM_TREE"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("items"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::data_structures::item_structure::item_tree::ItemTree {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
items: __s6,
},
)
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "ITEM_TREE", __FIELDS, __Visitor)
}
}
impl<T: ::serde::Serialize> ::serde::Serialize
for crate::v1_2::foundation_types::interval::interval::Interval<T>
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::foundation_types::interval::interval::Interval::DvInterval(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::foundation_types::interval::interval::Interval::PointInterval(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::foundation_types::interval::interval::Interval::ProperInterval(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::Deserialize<'de>
for crate::v1_2::foundation_types::interval::interval::Interval<T>
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &[
"DV_INTERVAL",
"Multiplicity_interval",
"Point_interval",
"Proper_interval",
];
struct __Visitor<T>(::core::marker::PhantomData<(T,)>);
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::de::Visitor<'de> for __Visitor<T> {
type Value = crate::v1_2::foundation_types::interval::interval::Interval<T>;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `Interval` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_INTERVAL" => ::core::result::Result::Ok(crate::v1_2::foundation_types::interval::interval::Interval::DvInterval(::serde::Deserialize::deserialize(__rest)?)),
"Multiplicity_interval" => ::core::result::Result::Ok(crate::v1_2::foundation_types::interval::interval::Interval::ProperInterval(::serde::Deserialize::deserialize(__rest)?)),
"Point_interval" => ::core::result::Result::Ok(crate::v1_2::foundation_types::interval::interval::Interval::PointInterval(::serde::Deserialize::deserialize(__rest)?)),
"Proper_interval" => ::core::result::Result::Ok(crate::v1_2::foundation_types::interval::interval::Interval::ProperInterval(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("Interval", __other, "DV_INTERVAL, Multiplicity_interval, Point_interval, Proper_interval")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"Interval",
&__other,
"DV_INTERVAL, Multiplicity_interval, Point_interval, Proper_interval",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"Interval",
"DV_INTERVAL, Multiplicity_interval, Point_interval, Proper_interval",
))
}
}
}
}
::serde::Deserializer::deserialize_map(
__deserializer,
__Visitor(::core::marker::PhantomData),
)
}
}
impl ::serde::Serialize for crate::v1_2::foundation_types::time::iso8601_date::Iso8601DateData {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "Iso8601_date", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "Iso8601_date")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::foundation_types::time::iso8601_date::Iso8601DateData
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["value"];
enum __Field {
__Type,
__F0,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"value" => ::core::result::Result::Ok(__Field::__F0),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"Iso8601_date",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::foundation_types::time::iso8601_date::Iso8601DateData;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `Iso8601_date` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("Iso8601_date"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::foundation_types::time::iso8601_date::Iso8601DateData {
value: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"Iso8601_date",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::foundation_types::time::iso8601_date::Iso8601Date {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::foundation_types::time::iso8601_date::Iso8601Date::DvDate(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::foundation_types::time::iso8601_date::Iso8601Date::Iso8601Date(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::foundation_types::time::iso8601_date::Iso8601Date
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["DV_DATE", "Iso8601_date"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::foundation_types::time::iso8601_date::Iso8601Date;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `Iso8601_date` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_DATE" => ::core::result::Result::Ok(crate::v1_2::foundation_types::time::iso8601_date::Iso8601Date::DvDate(::serde::Deserialize::deserialize(__rest)?)),
"Iso8601_date" => ::core::result::Result::Ok(crate::v1_2::foundation_types::time::iso8601_date::Iso8601Date::Iso8601Date(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("Iso8601_date", __other, "DV_DATE, Iso8601_date")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"Iso8601_date",
&__other,
"DV_DATE, Iso8601_date",
))
}
None => {
let __rest =
::openehr_base::serde_support::TaggedRest::new(None, __buffered, __map);
::core::result::Result::Ok(crate::v1_2::foundation_types::time::iso8601_date::Iso8601Date::Iso8601Date(::serde::Deserialize::deserialize(__rest)?))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize
for crate::v1_2::foundation_types::time::iso8601_date_time::Iso8601DateTimeData
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "Iso8601_date_time", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "Iso8601_date_time")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::foundation_types::time::iso8601_date_time::Iso8601DateTimeData
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["value"];
enum __Field {
__Type,
__F0,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"value" => ::core::result::Result::Ok(__Field::__F0),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"Iso8601_date_time",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value =
crate::v1_2::foundation_types::time::iso8601_date_time::Iso8601DateTimeData;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `Iso8601_date_time` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("Iso8601_date_time"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::foundation_types::time::iso8601_date_time::Iso8601DateTimeData {
value: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"Iso8601_date_time",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_2::foundation_types::time::iso8601_date_time::Iso8601DateTime
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::foundation_types::time::iso8601_date_time::Iso8601DateTime::DvDateTime(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_2::foundation_types::time::iso8601_date_time::Iso8601DateTime::Iso8601DateTime(__x) => ::serde::Serialize::serialize(__x, __serializer),
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::foundation_types::time::iso8601_date_time::Iso8601DateTime
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["DV_DATE_TIME", "Iso8601_date_time"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::foundation_types::time::iso8601_date_time::Iso8601DateTime;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `Iso8601_date_time` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_DATE_TIME" => ::core::result::Result::Ok(crate::v1_2::foundation_types::time::iso8601_date_time::Iso8601DateTime::DvDateTime(::serde::Deserialize::deserialize(__rest)?)),
"Iso8601_date_time" => ::core::result::Result::Ok(crate::v1_2::foundation_types::time::iso8601_date_time::Iso8601DateTime::Iso8601DateTime(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("Iso8601_date_time", __other, "DV_DATE_TIME, Iso8601_date_time")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"Iso8601_date_time",
&__other,
"DV_DATE_TIME, Iso8601_date_time",
))
}
None => {
let __rest =
::openehr_base::serde_support::TaggedRest::new(None, __buffered, __map);
::core::result::Result::Ok(crate::v1_2::foundation_types::time::iso8601_date_time::Iso8601DateTime::Iso8601DateTime(::serde::Deserialize::deserialize(__rest)?))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize
for crate::v1_2::foundation_types::time::iso8601_duration::Iso8601DurationData
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "Iso8601_duration", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "Iso8601_duration")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::foundation_types::time::iso8601_duration::Iso8601DurationData
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["value"];
enum __Field {
__Type,
__F0,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"value" => ::core::result::Result::Ok(__Field::__F0),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"Iso8601_duration",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::foundation_types::time::iso8601_duration::Iso8601DurationData;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `Iso8601_duration` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("Iso8601_duration"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::foundation_types::time::iso8601_duration::Iso8601DurationData {
value: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"Iso8601_duration",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::foundation_types::time::iso8601_duration::Iso8601Duration {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::foundation_types::time::iso8601_duration::Iso8601Duration::DvDuration(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_2::foundation_types::time::iso8601_duration::Iso8601Duration::Iso8601Duration(__x) => ::serde::Serialize::serialize(__x, __serializer),
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::foundation_types::time::iso8601_duration::Iso8601Duration
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["DV_DURATION", "Iso8601_duration"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::foundation_types::time::iso8601_duration::Iso8601Duration;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `Iso8601_duration` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_DURATION" => ::core::result::Result::Ok(crate::v1_2::foundation_types::time::iso8601_duration::Iso8601Duration::DvDuration(::serde::Deserialize::deserialize(__rest)?)),
"Iso8601_duration" => ::core::result::Result::Ok(crate::v1_2::foundation_types::time::iso8601_duration::Iso8601Duration::Iso8601Duration(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("Iso8601_duration", __other, "DV_DURATION, Iso8601_duration")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"Iso8601_duration",
&__other,
"DV_DURATION, Iso8601_duration",
))
}
None => {
let __rest =
::openehr_base::serde_support::TaggedRest::new(None, __buffered, __map);
::core::result::Result::Ok(crate::v1_2::foundation_types::time::iso8601_duration::Iso8601Duration::Iso8601Duration(::serde::Deserialize::deserialize(__rest)?))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::foundation_types::time::iso8601_time::Iso8601TimeData {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "Iso8601_time", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "Iso8601_time")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "value", &self.value)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::foundation_types::time::iso8601_time::Iso8601TimeData
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["value"];
enum __Field {
__Type,
__F0,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"value" => ::core::result::Result::Ok(__Field::__F0),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"Iso8601_time",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::foundation_types::time::iso8601_time::Iso8601TimeData;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `Iso8601_time` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("Iso8601_time"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("value"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::foundation_types::time::iso8601_time::Iso8601TimeData {
value: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"Iso8601_time",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::foundation_types::time::iso8601_time::Iso8601Time {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::foundation_types::time::iso8601_time::Iso8601Time::DvTime(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::foundation_types::time::iso8601_time::Iso8601Time::Iso8601Time(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::foundation_types::time::iso8601_time::Iso8601Time
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["DV_TIME", "Iso8601_time"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::foundation_types::time::iso8601_time::Iso8601Time;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `Iso8601_time` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_TIME" => ::core::result::Result::Ok(crate::v1_2::foundation_types::time::iso8601_time::Iso8601Time::DvTime(::serde::Deserialize::deserialize(__rest)?)),
"Iso8601_time" => ::core::result::Result::Ok(crate::v1_2::foundation_types::time::iso8601_time::Iso8601Time::Iso8601Time(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("Iso8601_time", __other, "DV_TIME, Iso8601_time")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"Iso8601_time",
&__other,
"DV_TIME, Iso8601_time",
))
}
None => {
let __rest =
::openehr_base::serde_support::TaggedRest::new(None, __buffered, __map);
::core::result::Result::Ok(crate::v1_2::foundation_types::time::iso8601_time::Iso8601Time::Iso8601Time(::serde::Deserialize::deserialize(__rest)?))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::foundation_types::time::iso8601_type::Iso8601Type {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::foundation_types::time::iso8601_type::Iso8601Type::Iso8601Date(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::foundation_types::time::iso8601_type::Iso8601Type::Iso8601DateTime(
__x,
) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_2::foundation_types::time::iso8601_type::Iso8601Type::Iso8601Duration(
__x,
) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_2::foundation_types::time::iso8601_type::Iso8601Type::Iso8601Time(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::foundation_types::time::iso8601_type::Iso8601Type::Iso8601Timezone(
__x,
) => ::serde::Serialize::serialize(__x, __serializer),
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::foundation_types::time::iso8601_type::Iso8601Type
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &[
"DV_DATE",
"DV_DATE_TIME",
"DV_DURATION",
"DV_TIME",
"Iso8601_date",
"Iso8601_date_time",
"Iso8601_duration",
"Iso8601_time",
"Iso8601_timezone",
];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::foundation_types::time::iso8601_type::Iso8601Type;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `Iso8601_type` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"DV_DATE" => ::core::result::Result::Ok(crate::v1_2::foundation_types::time::iso8601_type::Iso8601Type::Iso8601Date(::serde::Deserialize::deserialize(__rest)?)),
"DV_DATE_TIME" => ::core::result::Result::Ok(crate::v1_2::foundation_types::time::iso8601_type::Iso8601Type::Iso8601DateTime(::serde::Deserialize::deserialize(__rest)?)),
"DV_DURATION" => ::core::result::Result::Ok(crate::v1_2::foundation_types::time::iso8601_type::Iso8601Type::Iso8601Duration(::serde::Deserialize::deserialize(__rest)?)),
"DV_TIME" => ::core::result::Result::Ok(crate::v1_2::foundation_types::time::iso8601_type::Iso8601Type::Iso8601Time(::serde::Deserialize::deserialize(__rest)?)),
"Iso8601_date" => ::core::result::Result::Ok(crate::v1_2::foundation_types::time::iso8601_type::Iso8601Type::Iso8601Date(::serde::Deserialize::deserialize(__rest)?)),
"Iso8601_date_time" => ::core::result::Result::Ok(crate::v1_2::foundation_types::time::iso8601_type::Iso8601Type::Iso8601DateTime(::serde::Deserialize::deserialize(__rest)?)),
"Iso8601_duration" => ::core::result::Result::Ok(crate::v1_2::foundation_types::time::iso8601_type::Iso8601Type::Iso8601Duration(::serde::Deserialize::deserialize(__rest)?)),
"Iso8601_time" => ::core::result::Result::Ok(crate::v1_2::foundation_types::time::iso8601_type::Iso8601Type::Iso8601Time(::serde::Deserialize::deserialize(__rest)?)),
"Iso8601_timezone" => ::core::result::Result::Ok(crate::v1_2::foundation_types::time::iso8601_type::Iso8601Type::Iso8601Timezone(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("Iso8601_type", __other, "DV_DATE, DV_DATE_TIME, DV_DURATION, DV_TIME, Iso8601_date, Iso8601_date_time, Iso8601_duration, Iso8601_time, Iso8601_timezone")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"Iso8601_type",
&__other,
"DV_DATE, DV_DATE_TIME, DV_DURATION, DV_TIME, Iso8601_date, Iso8601_date_time, Iso8601_duration, Iso8601_time, Iso8601_timezone",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"Iso8601_type",
"DV_DATE, DV_DATE_TIME, DV_DURATION, DV_TIME, Iso8601_date, Iso8601_date_time, Iso8601_duration, Iso8601_time, Iso8601_timezone",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::common::archetyped::link::Link {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "LINK", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "LINK")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "meaning", &self.meaning)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "type", &self.r#type)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "target", &self.target)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::common::archetyped::link::Link {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["meaning", "target", "type"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"meaning" => ::core::result::Result::Ok(__Field::__F0),
"type" => ::core::result::Result::Ok(__Field::__F1),
"target" => ::core::result::Result::Ok(__Field::__F2),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(__v, "LINK", __FIELDS),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::common::archetyped::link::Link;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `LINK` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("LINK"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("meaning"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("type"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("target"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::common::archetyped::link::Link {
meaning: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("meaning"))?,
r#type: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("type"))?,
target: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("target"))?,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "LINK", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::common::archetyped::locatable::Locatable {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::common::archetyped::locatable::Locatable::Action(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::Activity(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::Address(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::AdminEntry(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::Agent(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::Capability(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::Cluster(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::Composition(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::Contact(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::EhrAccess(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::EhrStatus(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::Element(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::Evaluation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::Extract(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::ExtractActionRequest(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::ExtractChapter(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::ExtractFolder(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::ExtractRequest(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::Folder(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::GenericContentItem(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::GenericEntry(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::Group(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::History(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::Instruction(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::IntervalEvent(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::ItemList(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::ItemSingle(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::ItemTable(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::ItemTree(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::Observation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::OpenehrContentItem(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::Organisation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::PartyIdentity(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::PartyRelationship(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::Person(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::PointEvent(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::Role(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::locatable::Locatable::Section(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::common::archetyped::locatable::Locatable {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &[
"ACTION",
"ACTIVITY",
"ADDRESS",
"ADMIN_ENTRY",
"AGENT",
"CAPABILITY",
"CLUSTER",
"COMPOSITION",
"CONTACT",
"EHR_ACCESS",
"EHR_STATUS",
"ELEMENT",
"EVALUATION",
"EXTRACT",
"EXTRACT_ACTION_REQUEST",
"EXTRACT_CHAPTER",
"EXTRACT_ENTITY_CHAPTER",
"EXTRACT_FOLDER",
"EXTRACT_REQUEST",
"FOLDER",
"GENERIC_CONTENT_ITEM",
"GENERIC_ENTRY",
"GROUP",
"HISTORY",
"INSTRUCTION",
"INTERVAL_EVENT",
"ITEM_LIST",
"ITEM_SINGLE",
"ITEM_TABLE",
"ITEM_TREE",
"OBSERVATION",
"OPENEHR_CONTENT_ITEM",
"ORGANISATION",
"PARTY_IDENTITY",
"PARTY_RELATIONSHIP",
"PERSON",
"POINT_EVENT",
"ROLE",
"SECTION",
];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::common::archetyped::locatable::Locatable;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `LOCATABLE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"ACTION" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::Action(::serde::Deserialize::deserialize(__rest)?)),
"ACTIVITY" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::Activity(::serde::Deserialize::deserialize(__rest)?)),
"ADDRESS" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::Address(::serde::Deserialize::deserialize(__rest)?)),
"ADMIN_ENTRY" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::AdminEntry(::serde::Deserialize::deserialize(__rest)?)),
"AGENT" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::Agent(::serde::Deserialize::deserialize(__rest)?)),
"CAPABILITY" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::Capability(::serde::Deserialize::deserialize(__rest)?)),
"CLUSTER" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::Cluster(::serde::Deserialize::deserialize(__rest)?)),
"COMPOSITION" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::Composition(::serde::Deserialize::deserialize(__rest)?)),
"CONTACT" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::Contact(::serde::Deserialize::deserialize(__rest)?)),
"EHR_ACCESS" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::EhrAccess(::serde::Deserialize::deserialize(__rest)?)),
"EHR_STATUS" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::EhrStatus(::serde::Deserialize::deserialize(__rest)?)),
"ELEMENT" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::Element(::serde::Deserialize::deserialize(__rest)?)),
"EVALUATION" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::Evaluation(::serde::Deserialize::deserialize(__rest)?)),
"EXTRACT" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::Extract(::serde::Deserialize::deserialize(__rest)?)),
"EXTRACT_ACTION_REQUEST" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::ExtractActionRequest(::serde::Deserialize::deserialize(__rest)?)),
"EXTRACT_CHAPTER" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::ExtractChapter(::serde::Deserialize::deserialize(__rest)?)),
"EXTRACT_ENTITY_CHAPTER" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::ExtractChapter(::serde::Deserialize::deserialize(__rest)?)),
"EXTRACT_FOLDER" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::ExtractFolder(::serde::Deserialize::deserialize(__rest)?)),
"EXTRACT_REQUEST" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::ExtractRequest(::serde::Deserialize::deserialize(__rest)?)),
"FOLDER" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::Folder(::serde::Deserialize::deserialize(__rest)?)),
"GENERIC_CONTENT_ITEM" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::GenericContentItem(::serde::Deserialize::deserialize(__rest)?)),
"GENERIC_ENTRY" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::GenericEntry(::serde::Deserialize::deserialize(__rest)?)),
"GROUP" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::Group(::serde::Deserialize::deserialize(__rest)?)),
"HISTORY" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::History(::serde::Deserialize::deserialize(__rest)?)),
"INSTRUCTION" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::Instruction(::serde::Deserialize::deserialize(__rest)?)),
"INTERVAL_EVENT" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::IntervalEvent(::serde::Deserialize::deserialize(__rest)?)),
"ITEM_LIST" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::ItemList(::serde::Deserialize::deserialize(__rest)?)),
"ITEM_SINGLE" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::ItemSingle(::serde::Deserialize::deserialize(__rest)?)),
"ITEM_TABLE" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::ItemTable(::serde::Deserialize::deserialize(__rest)?)),
"ITEM_TREE" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::ItemTree(::serde::Deserialize::deserialize(__rest)?)),
"OBSERVATION" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::Observation(::serde::Deserialize::deserialize(__rest)?)),
"OPENEHR_CONTENT_ITEM" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::OpenehrContentItem(::serde::Deserialize::deserialize(__rest)?)),
"ORGANISATION" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::Organisation(::serde::Deserialize::deserialize(__rest)?)),
"PARTY_IDENTITY" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::PartyIdentity(::serde::Deserialize::deserialize(__rest)?)),
"PARTY_RELATIONSHIP" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::PartyRelationship(::serde::Deserialize::deserialize(__rest)?)),
"PERSON" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::Person(::serde::Deserialize::deserialize(__rest)?)),
"POINT_EVENT" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::PointEvent(::serde::Deserialize::deserialize(__rest)?)),
"ROLE" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::Role(::serde::Deserialize::deserialize(__rest)?)),
"SECTION" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::locatable::Locatable::Section(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("LOCATABLE", __other, "ACTION, ACTIVITY, ADDRESS, ADMIN_ENTRY, AGENT, CAPABILITY, CLUSTER, COMPOSITION, CONTACT, EHR_ACCESS, EHR_STATUS, ELEMENT, EVALUATION, EXTRACT, EXTRACT_ACTION_REQUEST, EXTRACT_CHAPTER, EXTRACT_ENTITY_CHAPTER, EXTRACT_FOLDER, EXTRACT_REQUEST, FOLDER, GENERIC_CONTENT_ITEM, GENERIC_ENTRY, GROUP, HISTORY, INSTRUCTION, INTERVAL_EVENT, ITEM_LIST, ITEM_SINGLE, ITEM_TABLE, ITEM_TREE, OBSERVATION, OPENEHR_CONTENT_ITEM, ORGANISATION, PARTY_IDENTITY, PARTY_RELATIONSHIP, PERSON, POINT_EVENT, ROLE, SECTION")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"LOCATABLE",
&__other,
"ACTION, ACTIVITY, ADDRESS, ADMIN_ENTRY, AGENT, CAPABILITY, CLUSTER, COMPOSITION, CONTACT, EHR_ACCESS, EHR_STATUS, ELEMENT, EVALUATION, EXTRACT, EXTRACT_ACTION_REQUEST, EXTRACT_CHAPTER, EXTRACT_ENTITY_CHAPTER, EXTRACT_FOLDER, EXTRACT_REQUEST, FOLDER, GENERIC_CONTENT_ITEM, GENERIC_ENTRY, GROUP, HISTORY, INSTRUCTION, INTERVAL_EVENT, ITEM_LIST, ITEM_SINGLE, ITEM_TABLE, ITEM_TREE, OBSERVATION, OPENEHR_CONTENT_ITEM, ORGANISATION, PARTY_IDENTITY, PARTY_RELATIONSHIP, PERSON, POINT_EVENT, ROLE, SECTION",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"LOCATABLE",
"ACTION, ACTIVITY, ADDRESS, ADMIN_ENTRY, AGENT, CAPABILITY, CLUSTER, COMPOSITION, CONTACT, EHR_ACCESS, EHR_STATUS, ELEMENT, EVALUATION, EXTRACT, EXTRACT_ACTION_REQUEST, EXTRACT_CHAPTER, EXTRACT_ENTITY_CHAPTER, EXTRACT_FOLDER, EXTRACT_REQUEST, FOLDER, GENERIC_CONTENT_ITEM, GENERIC_ENTRY, GROUP, HISTORY, INSTRUCTION, INTERVAL_EVENT, ITEM_LIST, ITEM_SINGLE, ITEM_TABLE, ITEM_TREE, OBSERVATION, OPENEHR_CONTENT_ITEM, ORGANISATION, PARTY_IDENTITY, PARTY_RELATIONSHIP, PERSON, POINT_EVENT, ROLE, SECTION",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize
for crate::v1_2::support::measurement::measurement_service::MeasurementService
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 1usize;
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "MEASUREMENT_SERVICE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "MEASUREMENT_SERVICE")?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::support::measurement::measurement_service::MeasurementService
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[];
enum __Field {
__Type,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"MEASUREMENT_SERVICE",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::support::measurement::measurement_service::MeasurementService;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `MEASUREMENT_SERVICE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("MEASUREMENT_SERVICE"),
)?;
}
}
}
::core::result::Result::Ok(
crate::v1_2::support::measurement::measurement_service::MeasurementService {},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"MEASUREMENT_SERVICE",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::ehr_extract::message::message::Message {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.signature.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "MESSAGE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "MESSAGE")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "audit", &self.audit)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "author", &self.author)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "content", &self.content)?;
if let Some(__v) = &self.signature {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "signature", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::ehr_extract::message::message::Message {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["audit", "author", "content", "signature"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"audit" => ::core::result::Result::Ok(__Field::__F0),
"author" => ::core::result::Result::Ok(__Field::__F1),
"content" => ::core::result::Result::Ok(__Field::__F2),
"signature" => ::core::result::Result::Ok(__Field::__F3),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "MESSAGE", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::ehr_extract::message::message::Message;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `MESSAGE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("MESSAGE"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("audit"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("author"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("content"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("signature"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::ehr_extract::message::message::Message {
audit: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("audit"))?,
author: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("author"))?,
content: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("content"))?,
signature: __s3.flatten(),
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "MESSAGE", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::ehr_extract::message::message_content::MessageContent {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::ehr_extract::message::message_content::MessageContent::SyncExtract(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_2::ehr_extract::message::message_content::MessageContent::SyncExtractRequest(__x) => ::serde::Serialize::serialize(__x, __serializer),
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::ehr_extract::message::message_content::MessageContent
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["SYNC_EXTRACT", "SYNC_EXTRACT_REQUEST"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::ehr_extract::message::message_content::MessageContent;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `MESSAGE_CONTENT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"SYNC_EXTRACT" => ::core::result::Result::Ok(crate::v1_2::ehr_extract::message::message_content::MessageContent::SyncExtract(::serde::Deserialize::deserialize(__rest)?)),
"SYNC_EXTRACT_REQUEST" => ::core::result::Result::Ok(crate::v1_2::ehr_extract::message::message_content::MessageContent::SyncExtractRequest(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("MESSAGE_CONTENT", __other, "SYNC_EXTRACT, SYNC_EXTRACT_REQUEST")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"MESSAGE_CONTENT",
&__other,
"SYNC_EXTRACT, SYNC_EXTRACT_REQUEST",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"MESSAGE_CONTENT",
"SYNC_EXTRACT, SYNC_EXTRACT_REQUEST",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::composition::content::entry::observation::Observation {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 7usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self
.other_participations
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.workflow_id.is_some() {
__n += 1;
}
if self.provider.is_some() {
__n += 1;
}
if self.protocol.is_some() {
__n += 1;
}
if self.guideline_id.is_some() {
__n += 1;
}
if self.state.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "OBSERVATION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "OBSERVATION")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "language", &self.language)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "encoding", &self.encoding)?;
if let Some(__v) = &self.other_participations
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "other_participations", __v)?;
}
if let Some(__v) = &self.workflow_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "workflow_id", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "subject", &self.subject)?;
if let Some(__v) = &self.provider {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "provider", __v)?;
}
if let Some(__v) = &self.protocol {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "protocol", __v)?;
}
if let Some(__v) = &self.guideline_id {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "guideline_id", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "data", &self.data)?;
if let Some(__v) = &self.state {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "state", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::composition::content::entry::observation::Observation
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"data",
"encoding",
"feeder_audit",
"guideline_id",
"language",
"links",
"name",
"other_participations",
"protocol",
"provider",
"state",
"subject",
"uid",
"workflow_id",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
__F11,
__F12,
__F13,
__F14,
__F15,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"language" => ::core::result::Result::Ok(__Field::__F6),
"encoding" => ::core::result::Result::Ok(__Field::__F7),
"other_participations" => ::core::result::Result::Ok(__Field::__F8),
"workflow_id" => ::core::result::Result::Ok(__Field::__F9),
"subject" => ::core::result::Result::Ok(__Field::__F10),
"provider" => ::core::result::Result::Ok(__Field::__F11),
"protocol" => ::core::result::Result::Ok(__Field::__F12),
"guideline_id" => ::core::result::Result::Ok(__Field::__F13),
"data" => ::core::result::Result::Ok(__Field::__F14),
"state" => ::core::result::Result::Ok(__Field::__F15),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"OBSERVATION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::composition::content::entry::observation::Observation;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `OBSERVATION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<_> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s10: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s11: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s12: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s13: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s14: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s15: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("OBSERVATION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("language"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("encoding"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_participations"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("workflow_id"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("subject"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F11 => {
if __s11.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("provider"),
);
}
__s11 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F12 => {
if __s12.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("protocol"),
);
}
__s12 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F13 => {
if __s13.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("guideline_id"),
);
}
__s13 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F14 => {
if __s14.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("data"),
);
}
__s14 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F15 => {
if __s15.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("state"),
);
}
__s15 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::composition::content::entry::observation::Observation {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
language: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("language"))?,
encoding: __s7
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("encoding"))?,
other_participations: __s8,
workflow_id: __s9.flatten(),
subject: __s10
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("subject"))?,
provider: __s11.flatten(),
protocol: __s12.flatten(),
guideline_id: __s13.flatten(),
data: __s14
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("data"))?,
state: __s15.flatten(),
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"OBSERVATION",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::support::terminology::openehr_code_set_identifiers::OpenehrCodeSetIdentifiersData {
fn serialize<__S: ::serde::Serializer>(&self, __serializer: __S) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 1usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "OPENEHR_CODE_SET_IDENTIFIERS", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "OPENEHR_CODE_SET_IDENTIFIERS")?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::support::terminology::openehr_code_set_identifiers::OpenehrCodeSetIdentifiersData {
fn deserialize<__D: ::serde::Deserializer<'de>>(__deserializer: __D) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[];
enum __Field { __Type, }
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(__deserializer: __D) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(self, __v: &str) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
_ => ::core::result::Result::Err(::openehr_base::serde_support::unknown_field(__v, "OPENEHR_CODE_SET_IDENTIFIERS", __FIELDS)),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::support::terminology::openehr_code_set_identifiers::OpenehrCodeSetIdentifiersData;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `OPENEHR_CODE_SET_IDENTIFIERS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(self, mut __map: __A) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type { return ::core::result::Result::Err(::serde::de::Error::duplicate_field("_type")); }
__seen_type = true;
::serde::de::MapAccess::next_value_seed(&mut __map, ::openehr_base::serde_support::ExpectedType("OPENEHR_CODE_SET_IDENTIFIERS"))?;
}
}
}
::core::result::Result::Ok(crate::v1_2::support::terminology::openehr_code_set_identifiers::OpenehrCodeSetIdentifiersData {
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "OPENEHR_CODE_SET_IDENTIFIERS", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize
for crate::v1_2::support::terminology::openehr_code_set_identifiers::OpenehrCodeSetIdentifiers
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::support::terminology::openehr_code_set_identifiers::OpenehrCodeSetIdentifiers::TerminologyService(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_2::support::terminology::openehr_code_set_identifiers::OpenehrCodeSetIdentifiers::OpenehrCodeSetIdentifiers(__x) => ::serde::Serialize::serialize(__x, __serializer),
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::support::terminology::openehr_code_set_identifiers::OpenehrCodeSetIdentifiers
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["OPENEHR_CODE_SET_IDENTIFIERS", "TERMINOLOGY_SERVICE"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::support::terminology::openehr_code_set_identifiers::OpenehrCodeSetIdentifiers;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `OPENEHR_CODE_SET_IDENTIFIERS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"OPENEHR_CODE_SET_IDENTIFIERS" => ::core::result::Result::Ok(crate::v1_2::support::terminology::openehr_code_set_identifiers::OpenehrCodeSetIdentifiers::OpenehrCodeSetIdentifiers(::serde::Deserialize::deserialize(__rest)?)),
"TERMINOLOGY_SERVICE" => ::core::result::Result::Ok(crate::v1_2::support::terminology::openehr_code_set_identifiers::OpenehrCodeSetIdentifiers::TerminologyService(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("OPENEHR_CODE_SET_IDENTIFIERS", __other, "OPENEHR_CODE_SET_IDENTIFIERS, TERMINOLOGY_SERVICE")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"OPENEHR_CODE_SET_IDENTIFIERS",
&__other,
"OPENEHR_CODE_SET_IDENTIFIERS, TERMINOLOGY_SERVICE",
))
}
None => {
let __rest =
::openehr_base::serde_support::TaggedRest::new(None, __buffered, __map);
::core::result::Result::Ok(crate::v1_2::support::terminology::openehr_code_set_identifiers::OpenehrCodeSetIdentifiers::OpenehrCodeSetIdentifiers(::serde::Deserialize::deserialize(__rest)?))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize
for crate::v1_2::ehr_extract::openehr_extract::openehr_content_item::OpenehrContentItem
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.is_changed.is_some() {
__n += 1;
}
if self.is_masked.is_some() {
__n += 1;
}
if self.item.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "OPENEHR_CONTENT_ITEM", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "OPENEHR_CONTENT_ITEM")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "is_primary", &self.is_primary)?;
if let Some(__v) = &self.is_changed {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "is_changed", __v)?;
}
if let Some(__v) = &self.is_masked {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "is_masked", __v)?;
}
if let Some(__v) = &self.item {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "item", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::ehr_extract::openehr_extract::openehr_content_item::OpenehrContentItem
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"feeder_audit",
"is_changed",
"is_masked",
"is_primary",
"item",
"links",
"name",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"is_primary" => ::core::result::Result::Ok(__Field::__F6),
"is_changed" => ::core::result::Result::Ok(__Field::__F7),
"is_masked" => ::core::result::Result::Ok(__Field::__F8),
"item" => ::core::result::Result::Ok(__Field::__F9),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"OPENEHR_CONTENT_ITEM",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value =
crate::v1_2::ehr_extract::openehr_extract::openehr_content_item::OpenehrContentItem;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `OPENEHR_CONTENT_ITEM` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("OPENEHR_CONTENT_ITEM"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("is_primary"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("is_changed"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("is_masked"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("item"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::ehr_extract::openehr_extract::openehr_content_item::OpenehrContentItem {
name: __s0.flatten().ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
is_primary: __s6.flatten().ok_or_else(|| ::serde::de::Error::missing_field("is_primary"))?,
is_changed: __s7.flatten(),
is_masked: __s8.flatten(),
item: __s9.flatten(),
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"OPENEHR_CONTENT_ITEM",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::support::terminology::openehr_terminology_group_identifiers::OpenehrTerminologyGroupIdentifiersData {
fn serialize<__S: ::serde::Serializer>(&self, __serializer: __S) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 1usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS")?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::support::terminology::openehr_terminology_group_identifiers::OpenehrTerminologyGroupIdentifiersData {
fn deserialize<__D: ::serde::Deserializer<'de>>(__deserializer: __D) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[];
enum __Field { __Type, }
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(__deserializer: __D) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(self, __v: &str) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
_ => ::core::result::Result::Err(::openehr_base::serde_support::unknown_field(__v, "OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS", __FIELDS)),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::support::terminology::openehr_terminology_group_identifiers::OpenehrTerminologyGroupIdentifiersData;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(self, mut __map: __A) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type { return ::core::result::Result::Err(::serde::de::Error::duplicate_field("_type")); }
__seen_type = true;
::serde::de::MapAccess::next_value_seed(&mut __map, ::openehr_base::serde_support::ExpectedType("OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS"))?;
}
}
}
::core::result::Result::Ok(crate::v1_2::support::terminology::openehr_terminology_group_identifiers::OpenehrTerminologyGroupIdentifiersData {
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::support::terminology::openehr_terminology_group_identifiers::OpenehrTerminologyGroupIdentifiers {
fn serialize<__S: ::serde::Serializer>(&self, __serializer: __S) -> ::core::result::Result<__S::Ok, __S::Error> { match self {
crate::v1_2::support::terminology::openehr_terminology_group_identifiers::OpenehrTerminologyGroupIdentifiers::TerminologyService(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_2::support::terminology::openehr_terminology_group_identifiers::OpenehrTerminologyGroupIdentifiers::OpenehrTerminologyGroupIdentifiers(__x) => ::serde::Serialize::serialize(__x, __serializer),
} }
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::support::terminology::openehr_terminology_group_identifiers::OpenehrTerminologyGroupIdentifiers {
fn deserialize<__D: ::serde::Deserializer<'de>>(__deserializer: __D) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS", "TERMINOLOGY_SERVICE"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::support::terminology::openehr_terminology_group_identifiers::OpenehrTerminologyGroupIdentifiers;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(self, mut __map: __A) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) = ::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(Some(__t), __buffered, __map);
match __t {
"OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS" => ::core::result::Result::Ok(crate::v1_2::support::terminology::openehr_terminology_group_identifiers::OpenehrTerminologyGroupIdentifiers::OpenehrTerminologyGroupIdentifiers(::serde::Deserialize::deserialize(__rest)?)),
"TERMINOLOGY_SERVICE" => ::core::result::Result::Ok(crate::v1_2::support::terminology::openehr_terminology_group_identifiers::OpenehrTerminologyGroupIdentifiers::TerminologyService(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS", __other, "OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS, TERMINOLOGY_SERVICE")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS", &__other, "OPENEHR_TERMINOLOGY_GROUP_IDENTIFIERS, TERMINOLOGY_SERVICE")),
None => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(None, __buffered, __map);
::core::result::Result::Ok(crate::v1_2::support::terminology::openehr_terminology_group_identifiers::OpenehrTerminologyGroupIdentifiers::OpenehrTerminologyGroupIdentifiers(::serde::Deserialize::deserialize(__rest)?))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::demographic::organisation::Organisation {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.contacts.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.details.is_some() {
__n += 1;
}
if self
.relationships
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.languages.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.roles.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "ORGANISATION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ORGANISATION")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "identities", &self.identities)?;
if let Some(__v) = &self.contacts
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "contacts", __v)?;
}
if let Some(__v) = &self.details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "details", __v)?;
}
if let Some(__v) = &self.relationships
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "relationships", __v)?;
}
if let Some(__v) = &self.languages
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "languages", __v)?;
}
if let Some(__v) = &self.roles
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "roles", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::demographic::organisation::Organisation {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"contacts",
"details",
"feeder_audit",
"identities",
"languages",
"links",
"name",
"relationships",
"roles",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
__F11,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"identities" => ::core::result::Result::Ok(__Field::__F6),
"contacts" => ::core::result::Result::Ok(__Field::__F7),
"details" => ::core::result::Result::Ok(__Field::__F8),
"relationships" => ::core::result::Result::Ok(__Field::__F9),
"languages" => ::core::result::Result::Ok(__Field::__F10),
"roles" => ::core::result::Result::Ok(__Field::__F11),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"ORGANISATION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::demographic::organisation::Organisation;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ORGANISATION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<_> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<_> = None;
let mut __s10: ::core::option::Option<_> = None;
let mut __s11: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ORGANISATION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("identities"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("contacts"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("details"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("relationships"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("languages"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F11 => {
if __s11.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("roles"),
);
}
__s11 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::demographic::organisation::Organisation {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
identities: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("identities"))?,
contacts: __s7,
details: __s8.flatten(),
relationships: __s9,
languages: ::openehr_base::serde_support::refuse_empty_list(
__s10,
"languages",
)?,
roles: __s11,
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"ORGANISATION",
__FIELDS,
__Visitor,
)
}
}
impl<T: ::serde::Serialize> ::serde::Serialize
for crate::v1_2::common::change_control::original_version::OriginalVersion<T>
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 5usize;
if self.signature.is_some() {
__n += 1;
}
if self.preceding_version_uid.is_some() {
__n += 1;
}
if self
.other_input_version_uids
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self
.attestations
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.data.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "ORIGINAL_VERSION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ORIGINAL_VERSION")?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"contribution",
&self.contribution,
)?;
if let Some(__v) = &self.signature {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "signature", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"commit_audit",
&self.commit_audit,
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
if let Some(__v) = &self.preceding_version_uid {
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"preceding_version_uid",
__v,
)?;
}
if let Some(__v) = &self.other_input_version_uids
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"other_input_version_uids",
__v,
)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"lifecycle_state",
&self.lifecycle_state,
)?;
if let Some(__v) = &self.attestations
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "attestations", __v)?;
}
if let Some(__v) = &self.data {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "data", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::Deserialize<'de>
for crate::v1_2::common::change_control::original_version::OriginalVersion<T>
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"attestations",
"commit_audit",
"contribution",
"data",
"lifecycle_state",
"other_input_version_uids",
"preceding_version_uid",
"signature",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"contribution" => ::core::result::Result::Ok(__Field::__F0),
"signature" => ::core::result::Result::Ok(__Field::__F1),
"commit_audit" => ::core::result::Result::Ok(__Field::__F2),
"uid" => ::core::result::Result::Ok(__Field::__F3),
"preceding_version_uid" => ::core::result::Result::Ok(__Field::__F4),
"other_input_version_uids" => ::core::result::Result::Ok(__Field::__F5),
"lifecycle_state" => ::core::result::Result::Ok(__Field::__F6),
"attestations" => ::core::result::Result::Ok(__Field::__F7),
"data" => ::core::result::Result::Ok(__Field::__F8),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"ORIGINAL_VERSION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor<T>(::core::marker::PhantomData<(T,)>);
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::de::Visitor<'de> for __Visitor<T> {
type Value = crate::v1_2::common::change_control::original_version::OriginalVersion<T>;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ORIGINAL_VERSION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<_> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<_> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ORIGINAL_VERSION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("contribution"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("signature"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("commit_audit"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("preceding_version_uid"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_input_version_uids"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("lifecycle_state"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("attestations"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("data"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::common::change_control::original_version::OriginalVersion {
contribution: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("contribution"))?,
signature: __s1.flatten(),
commit_audit: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("commit_audit"))?,
uid: __s3
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
preceding_version_uid: __s4.flatten(),
other_input_version_uids: __s5,
lifecycle_state: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("lifecycle_state"))?,
attestations: __s7,
data: __s8.flatten(),
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"ORIGINAL_VERSION",
__FIELDS,
__Visitor(::core::marker::PhantomData),
)
}
}
impl ::serde::Serialize for crate::v1_2::common::generic::participation::Participation {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.mode.is_some() {
__n += 1;
}
if self.time.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "PARTICIPATION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "PARTICIPATION")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "function", &self.function)?;
if let Some(__v) = &self.mode {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "mode", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "performer", &self.performer)?;
if let Some(__v) = &self.time {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "time", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::common::generic::participation::Participation {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["function", "mode", "performer", "time"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"function" => ::core::result::Result::Ok(__Field::__F0),
"mode" => ::core::result::Result::Ok(__Field::__F1),
"performer" => ::core::result::Result::Ok(__Field::__F2),
"time" => ::core::result::Result::Ok(__Field::__F3),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"PARTICIPATION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::common::generic::participation::Participation;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `PARTICIPATION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("PARTICIPATION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("function"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("mode"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("performer"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::common::generic::participation::Participation {
function: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("function"))?,
mode: __s1.flatten(),
performer: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("performer"))?,
time: __s3.flatten(),
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"PARTICIPATION",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::demographic::party::Party {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::demographic::party::Party::Agent(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::demographic::party::Party::Group(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::demographic::party::Party::Organisation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::demographic::party::Party::Person(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::demographic::party::Party::Role(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::demographic::party::Party {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["AGENT", "GROUP", "ORGANISATION", "PERSON", "ROLE"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::demographic::party::Party;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `PARTY` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"AGENT" => ::core::result::Result::Ok(
crate::v1_2::demographic::party::Party::Agent(
::serde::Deserialize::deserialize(__rest)?,
),
),
"GROUP" => ::core::result::Result::Ok(
crate::v1_2::demographic::party::Party::Group(
::serde::Deserialize::deserialize(__rest)?,
),
),
"ORGANISATION" => ::core::result::Result::Ok(
crate::v1_2::demographic::party::Party::Organisation(
::serde::Deserialize::deserialize(__rest)?,
),
),
"PERSON" => ::core::result::Result::Ok(
crate::v1_2::demographic::party::Party::Person(
::serde::Deserialize::deserialize(__rest)?,
),
),
"ROLE" => ::core::result::Result::Ok(
crate::v1_2::demographic::party::Party::Role(
::serde::Deserialize::deserialize(__rest)?,
),
),
__other => ::core::result::Result::Err(
::openehr_base::serde_support::unexpected_type(
"PARTY",
__other,
"AGENT, GROUP, ORGANISATION, PERSON, ROLE",
),
),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"PARTY",
&__other,
"AGENT, GROUP, ORGANISATION, PERSON, ROLE",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"PARTY",
"AGENT, GROUP, ORGANISATION, PERSON, ROLE",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::common::generic::party_identified::PartyIdentifiedData {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 1usize;
if self.external_ref.is_some() {
__n += 1;
}
if self.name.is_some() {
__n += 1;
}
if self.identifiers.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "PARTY_IDENTIFIED", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "PARTY_IDENTIFIED")?;
if let Some(__v) = &self.external_ref {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "external_ref", __v)?;
}
if let Some(__v) = &self.name {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", __v)?;
}
if let Some(__v) = &self.identifiers
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "identifiers", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::common::generic::party_identified::PartyIdentifiedData
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["external_ref", "identifiers", "name"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"external_ref" => ::core::result::Result::Ok(__Field::__F0),
"name" => ::core::result::Result::Ok(__Field::__F1),
"identifiers" => ::core::result::Result::Ok(__Field::__F2),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"PARTY_IDENTIFIED",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::common::generic::party_identified::PartyIdentifiedData;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `PARTY_IDENTIFIED` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("PARTY_IDENTIFIED"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("external_ref"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("identifiers"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::common::generic::party_identified::PartyIdentifiedData {
external_ref: __s0.flatten(),
name: __s1.flatten(),
identifiers: __s2,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"PARTY_IDENTIFIED",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::common::generic::party_identified::PartyIdentified {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::common::generic::party_identified::PartyIdentified::PartyRelated(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::generic::party_identified::PartyIdentified::PartyIdentified(
__x,
) => ::serde::Serialize::serialize(__x, __serializer),
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::common::generic::party_identified::PartyIdentified
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["PARTY_IDENTIFIED", "PARTY_RELATED"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::common::generic::party_identified::PartyIdentified;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `PARTY_IDENTIFIED` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"PARTY_IDENTIFIED" => ::core::result::Result::Ok(crate::v1_2::common::generic::party_identified::PartyIdentified::PartyIdentified(::serde::Deserialize::deserialize(__rest)?)),
"PARTY_RELATED" => ::core::result::Result::Ok(crate::v1_2::common::generic::party_identified::PartyIdentified::PartyRelated(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("PARTY_IDENTIFIED", __other, "PARTY_IDENTIFIED, PARTY_RELATED")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"PARTY_IDENTIFIED",
&__other,
"PARTY_IDENTIFIED, PARTY_RELATED",
))
}
None => {
let __rest =
::openehr_base::serde_support::TaggedRest::new(None, __buffered, __map);
::core::result::Result::Ok(crate::v1_2::common::generic::party_identified::PartyIdentified::PartyIdentified(::serde::Deserialize::deserialize(__rest)?))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::demographic::party_identity::PartyIdentity {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "PARTY_IDENTITY", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "PARTY_IDENTITY")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "details", &self.details)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::demographic::party_identity::PartyIdentity {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"details",
"feeder_audit",
"links",
"name",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"details" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"PARTY_IDENTITY",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::demographic::party_identity::PartyIdentity;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `PARTY_IDENTITY` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("PARTY_IDENTITY"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("details"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::demographic::party_identity::PartyIdentity {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
details: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("details"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"PARTY_IDENTITY",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::common::generic::party_proxy::PartyProxy {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::common::generic::party_proxy::PartyProxy::PartyIdentified(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::generic::party_proxy::PartyProxy::PartySelf(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::common::generic::party_proxy::PartyProxy {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["PARTY_IDENTIFIED", "PARTY_RELATED", "PARTY_SELF"];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::common::generic::party_proxy::PartyProxy;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `PARTY_PROXY` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"PARTY_IDENTIFIED" => ::core::result::Result::Ok(crate::v1_2::common::generic::party_proxy::PartyProxy::PartyIdentified(::serde::Deserialize::deserialize(__rest)?)),
"PARTY_RELATED" => ::core::result::Result::Ok(crate::v1_2::common::generic::party_proxy::PartyProxy::PartyIdentified(::serde::Deserialize::deserialize(__rest)?)),
"PARTY_SELF" => ::core::result::Result::Ok(crate::v1_2::common::generic::party_proxy::PartyProxy::PartySelf(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("PARTY_PROXY", __other, "PARTY_IDENTIFIED, PARTY_RELATED, PARTY_SELF")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"PARTY_PROXY",
&__other,
"PARTY_IDENTIFIED, PARTY_RELATED, PARTY_SELF",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"PARTY_PROXY",
"PARTY_IDENTIFIED, PARTY_RELATED, PARTY_SELF",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::common::generic::party_related::PartyRelated {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self.external_ref.is_some() {
__n += 1;
}
if self.name.is_some() {
__n += 1;
}
if self.identifiers.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "PARTY_RELATED", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "PARTY_RELATED")?;
if let Some(__v) = &self.external_ref {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "external_ref", __v)?;
}
if let Some(__v) = &self.name {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", __v)?;
}
if let Some(__v) = &self.identifiers
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "identifiers", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"relationship",
&self.relationship,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::common::generic::party_related::PartyRelated {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["external_ref", "identifiers", "name", "relationship"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"external_ref" => ::core::result::Result::Ok(__Field::__F0),
"name" => ::core::result::Result::Ok(__Field::__F1),
"identifiers" => ::core::result::Result::Ok(__Field::__F2),
"relationship" => ::core::result::Result::Ok(__Field::__F3),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"PARTY_RELATED",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::common::generic::party_related::PartyRelated;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `PARTY_RELATED` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<_> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("PARTY_RELATED"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("external_ref"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("identifiers"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("relationship"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::common::generic::party_related::PartyRelated {
external_ref: __s0.flatten(),
name: __s1.flatten(),
identifiers: __s2,
relationship: __s3
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("relationship"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"PARTY_RELATED",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::demographic::party_relationship::PartyRelationship {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 5usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.details.is_some() {
__n += 1;
}
if self.time_validity.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "PARTY_RELATIONSHIP", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "PARTY_RELATIONSHIP")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
if let Some(__v) = &self.details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "details", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "target", &self.target)?;
if let Some(__v) = &self.time_validity {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "time_validity", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "source", &self.source)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::demographic::party_relationship::PartyRelationship
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"details",
"feeder_audit",
"links",
"name",
"source",
"target",
"time_validity",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"details" => ::core::result::Result::Ok(__Field::__F6),
"target" => ::core::result::Result::Ok(__Field::__F7),
"time_validity" => ::core::result::Result::Ok(__Field::__F8),
"source" => ::core::result::Result::Ok(__Field::__F9),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"PARTY_RELATIONSHIP",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::demographic::party_relationship::PartyRelationship;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `PARTY_RELATIONSHIP` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("PARTY_RELATIONSHIP"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("details"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("target"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_validity"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("source"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::demographic::party_relationship::PartyRelationship {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
details: __s6.flatten(),
target: __s7
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("target"))?,
time_validity: __s8.flatten(),
source: __s9
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("source"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"PARTY_RELATIONSHIP",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::common::generic::party_self::PartySelf {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 1usize;
if self.external_ref.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "PARTY_SELF", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "PARTY_SELF")?;
if let Some(__v) = &self.external_ref {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "external_ref", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::common::generic::party_self::PartySelf {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["external_ref"];
enum __Field {
__Type,
__F0,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"external_ref" => ::core::result::Result::Ok(__Field::__F0),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"PARTY_SELF",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::common::generic::party_self::PartySelf;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `PARTY_SELF` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("PARTY_SELF"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("external_ref"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::common::generic::party_self::PartySelf {
external_ref: __s0.flatten(),
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "PARTY_SELF", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::common::archetyped::pathable::Pathable {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::common::archetyped::pathable::Pathable::Action(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::Activity(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::Address(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::AdminEntry(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::Agent(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::Capability(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::Cluster(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::Composition(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::Contact(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::EhrAccess(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::EhrStatus(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::Element(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::Evaluation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::EventContext(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::Extract(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::ExtractActionRequest(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::ExtractChapter(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::ExtractFolder(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::ExtractRequest(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::Folder(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::GenericContentItem(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::GenericEntry(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::Group(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::History(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::Instruction(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::InstructionDetails(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::IntervalEvent(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::IsmTransition(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::ItemList(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::ItemSingle(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::ItemTable(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::ItemTree(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::Observation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::OpenehrContentItem(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::Organisation(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::PartyIdentity(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::PartyRelationship(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::Person(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::PointEvent(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::Role(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::archetyped::pathable::Pathable::Section(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::common::archetyped::pathable::Pathable {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &[
"ACTION",
"ACTIVITY",
"ADDRESS",
"ADMIN_ENTRY",
"AGENT",
"CAPABILITY",
"CLUSTER",
"COMPOSITION",
"CONTACT",
"EHR_ACCESS",
"EHR_STATUS",
"ELEMENT",
"EVALUATION",
"EVENT_CONTEXT",
"EXTRACT",
"EXTRACT_ACTION_REQUEST",
"EXTRACT_CHAPTER",
"EXTRACT_ENTITY_CHAPTER",
"EXTRACT_FOLDER",
"EXTRACT_REQUEST",
"FOLDER",
"GENERIC_CONTENT_ITEM",
"GENERIC_ENTRY",
"GROUP",
"HISTORY",
"INSTRUCTION",
"INSTRUCTION_DETAILS",
"INTERVAL_EVENT",
"ISM_TRANSITION",
"ITEM_LIST",
"ITEM_SINGLE",
"ITEM_TABLE",
"ITEM_TREE",
"OBSERVATION",
"OPENEHR_CONTENT_ITEM",
"ORGANISATION",
"PARTY_IDENTITY",
"PARTY_RELATIONSHIP",
"PERSON",
"POINT_EVENT",
"ROLE",
"SECTION",
];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::common::archetyped::pathable::Pathable;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `PATHABLE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"ACTION" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::Action(::serde::Deserialize::deserialize(__rest)?)),
"ACTIVITY" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::Activity(::serde::Deserialize::deserialize(__rest)?)),
"ADDRESS" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::Address(::serde::Deserialize::deserialize(__rest)?)),
"ADMIN_ENTRY" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::AdminEntry(::serde::Deserialize::deserialize(__rest)?)),
"AGENT" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::Agent(::serde::Deserialize::deserialize(__rest)?)),
"CAPABILITY" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::Capability(::serde::Deserialize::deserialize(__rest)?)),
"CLUSTER" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::Cluster(::serde::Deserialize::deserialize(__rest)?)),
"COMPOSITION" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::Composition(::serde::Deserialize::deserialize(__rest)?)),
"CONTACT" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::Contact(::serde::Deserialize::deserialize(__rest)?)),
"EHR_ACCESS" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::EhrAccess(::serde::Deserialize::deserialize(__rest)?)),
"EHR_STATUS" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::EhrStatus(::serde::Deserialize::deserialize(__rest)?)),
"ELEMENT" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::Element(::serde::Deserialize::deserialize(__rest)?)),
"EVALUATION" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::Evaluation(::serde::Deserialize::deserialize(__rest)?)),
"EVENT_CONTEXT" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::EventContext(::serde::Deserialize::deserialize(__rest)?)),
"EXTRACT" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::Extract(::serde::Deserialize::deserialize(__rest)?)),
"EXTRACT_ACTION_REQUEST" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::ExtractActionRequest(::serde::Deserialize::deserialize(__rest)?)),
"EXTRACT_CHAPTER" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::ExtractChapter(::serde::Deserialize::deserialize(__rest)?)),
"EXTRACT_ENTITY_CHAPTER" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::ExtractChapter(::serde::Deserialize::deserialize(__rest)?)),
"EXTRACT_FOLDER" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::ExtractFolder(::serde::Deserialize::deserialize(__rest)?)),
"EXTRACT_REQUEST" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::ExtractRequest(::serde::Deserialize::deserialize(__rest)?)),
"FOLDER" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::Folder(::serde::Deserialize::deserialize(__rest)?)),
"GENERIC_CONTENT_ITEM" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::GenericContentItem(::serde::Deserialize::deserialize(__rest)?)),
"GENERIC_ENTRY" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::GenericEntry(::serde::Deserialize::deserialize(__rest)?)),
"GROUP" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::Group(::serde::Deserialize::deserialize(__rest)?)),
"HISTORY" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::History(::serde::Deserialize::deserialize(__rest)?)),
"INSTRUCTION" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::Instruction(::serde::Deserialize::deserialize(__rest)?)),
"INSTRUCTION_DETAILS" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::InstructionDetails(::serde::Deserialize::deserialize(__rest)?)),
"INTERVAL_EVENT" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::IntervalEvent(::serde::Deserialize::deserialize(__rest)?)),
"ISM_TRANSITION" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::IsmTransition(::serde::Deserialize::deserialize(__rest)?)),
"ITEM_LIST" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::ItemList(::serde::Deserialize::deserialize(__rest)?)),
"ITEM_SINGLE" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::ItemSingle(::serde::Deserialize::deserialize(__rest)?)),
"ITEM_TABLE" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::ItemTable(::serde::Deserialize::deserialize(__rest)?)),
"ITEM_TREE" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::ItemTree(::serde::Deserialize::deserialize(__rest)?)),
"OBSERVATION" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::Observation(::serde::Deserialize::deserialize(__rest)?)),
"OPENEHR_CONTENT_ITEM" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::OpenehrContentItem(::serde::Deserialize::deserialize(__rest)?)),
"ORGANISATION" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::Organisation(::serde::Deserialize::deserialize(__rest)?)),
"PARTY_IDENTITY" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::PartyIdentity(::serde::Deserialize::deserialize(__rest)?)),
"PARTY_RELATIONSHIP" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::PartyRelationship(::serde::Deserialize::deserialize(__rest)?)),
"PERSON" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::Person(::serde::Deserialize::deserialize(__rest)?)),
"POINT_EVENT" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::PointEvent(::serde::Deserialize::deserialize(__rest)?)),
"ROLE" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::Role(::serde::Deserialize::deserialize(__rest)?)),
"SECTION" => ::core::result::Result::Ok(crate::v1_2::common::archetyped::pathable::Pathable::Section(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("PATHABLE", __other, "ACTION, ACTIVITY, ADDRESS, ADMIN_ENTRY, AGENT, CAPABILITY, CLUSTER, COMPOSITION, CONTACT, EHR_ACCESS, EHR_STATUS, ELEMENT, EVALUATION, EVENT_CONTEXT, EXTRACT, EXTRACT_ACTION_REQUEST, EXTRACT_CHAPTER, EXTRACT_ENTITY_CHAPTER, EXTRACT_FOLDER, EXTRACT_REQUEST, FOLDER, GENERIC_CONTENT_ITEM, GENERIC_ENTRY, GROUP, HISTORY, INSTRUCTION, INSTRUCTION_DETAILS, INTERVAL_EVENT, ISM_TRANSITION, ITEM_LIST, ITEM_SINGLE, ITEM_TABLE, ITEM_TREE, OBSERVATION, OPENEHR_CONTENT_ITEM, ORGANISATION, PARTY_IDENTITY, PARTY_RELATIONSHIP, PERSON, POINT_EVENT, ROLE, SECTION")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"PATHABLE",
&__other,
"ACTION, ACTIVITY, ADDRESS, ADMIN_ENTRY, AGENT, CAPABILITY, CLUSTER, COMPOSITION, CONTACT, EHR_ACCESS, EHR_STATUS, ELEMENT, EVALUATION, EVENT_CONTEXT, EXTRACT, EXTRACT_ACTION_REQUEST, EXTRACT_CHAPTER, EXTRACT_ENTITY_CHAPTER, EXTRACT_FOLDER, EXTRACT_REQUEST, FOLDER, GENERIC_CONTENT_ITEM, GENERIC_ENTRY, GROUP, HISTORY, INSTRUCTION, INSTRUCTION_DETAILS, INTERVAL_EVENT, ISM_TRANSITION, ITEM_LIST, ITEM_SINGLE, ITEM_TABLE, ITEM_TREE, OBSERVATION, OPENEHR_CONTENT_ITEM, ORGANISATION, PARTY_IDENTITY, PARTY_RELATIONSHIP, PERSON, POINT_EVENT, ROLE, SECTION",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"PATHABLE",
"ACTION, ACTIVITY, ADDRESS, ADMIN_ENTRY, AGENT, CAPABILITY, CLUSTER, COMPOSITION, CONTACT, EHR_ACCESS, EHR_STATUS, ELEMENT, EVALUATION, EVENT_CONTEXT, EXTRACT, EXTRACT_ACTION_REQUEST, EXTRACT_CHAPTER, EXTRACT_ENTITY_CHAPTER, EXTRACT_FOLDER, EXTRACT_REQUEST, FOLDER, GENERIC_CONTENT_ITEM, GENERIC_ENTRY, GROUP, HISTORY, INSTRUCTION, INSTRUCTION_DETAILS, INTERVAL_EVENT, ISM_TRANSITION, ITEM_LIST, ITEM_SINGLE, ITEM_TABLE, ITEM_TREE, OBSERVATION, OPENEHR_CONTENT_ITEM, ORGANISATION, PARTY_IDENTITY, PARTY_RELATIONSHIP, PERSON, POINT_EVENT, ROLE, SECTION",
))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::demographic::person::Person {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.contacts.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.details.is_some() {
__n += 1;
}
if self
.relationships
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.languages.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.roles.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "PERSON", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "PERSON")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "identities", &self.identities)?;
if let Some(__v) = &self.contacts
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "contacts", __v)?;
}
if let Some(__v) = &self.details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "details", __v)?;
}
if let Some(__v) = &self.relationships
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "relationships", __v)?;
}
if let Some(__v) = &self.languages
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "languages", __v)?;
}
if let Some(__v) = &self.roles
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "roles", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::demographic::person::Person {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"contacts",
"details",
"feeder_audit",
"identities",
"languages",
"links",
"name",
"relationships",
"roles",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
__F11,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"identities" => ::core::result::Result::Ok(__Field::__F6),
"contacts" => ::core::result::Result::Ok(__Field::__F7),
"details" => ::core::result::Result::Ok(__Field::__F8),
"relationships" => ::core::result::Result::Ok(__Field::__F9),
"languages" => ::core::result::Result::Ok(__Field::__F10),
"roles" => ::core::result::Result::Ok(__Field::__F11),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "PERSON", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::demographic::person::Person;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `PERSON` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<_> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<_> = None;
let mut __s10: ::core::option::Option<_> = None;
let mut __s11: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("PERSON"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("identities"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("contacts"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("details"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("relationships"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("languages"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F11 => {
if __s11.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("roles"),
);
}
__s11 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::demographic::person::Person {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
identities: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("identities"))?,
contacts: __s7,
details: __s8.flatten(),
relationships: __s9,
languages: ::openehr_base::serde_support::refuse_empty_list(
__s10,
"languages",
)?,
roles: __s11,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "PERSON", __FIELDS, __Visitor)
}
}
impl<T: ::serde::Serialize> ::serde::Serialize
for crate::v1_2::data_structures::history::point_event::PointEvent<T>
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 5usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.state.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "POINT_EVENT", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "POINT_EVENT")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "time", &self.time)?;
if let Some(__v) = &self.state {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "state", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "data", &self.data)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::Deserialize<'de>
for crate::v1_2::data_structures::history::point_event::PointEvent<T>
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"data",
"feeder_audit",
"links",
"name",
"state",
"time",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"time" => ::core::result::Result::Ok(__Field::__F6),
"state" => ::core::result::Result::Ok(__Field::__F7),
"data" => ::core::result::Result::Ok(__Field::__F8),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"POINT_EVENT",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor<T>(::core::marker::PhantomData<(T,)>);
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::de::Visitor<'de> for __Visitor<T> {
type Value = crate::v1_2::data_structures::history::point_event::PointEvent<T>;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `POINT_EVENT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("POINT_EVENT"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("state"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("data"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::data_structures::history::point_event::PointEvent {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
time: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("time"))?,
state: __s7.flatten(),
data: __s8
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("data"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"POINT_EVENT",
__FIELDS,
__Visitor(::core::marker::PhantomData),
)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::quantity::proportion_kind::ProportionKind {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
::serde::Serializer::serialize_i32(__serializer, self.value())
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::data_types::quantity::proportion_kind::ProportionKind
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
let __v: i32 = ::serde::Deserialize::deserialize(__deserializer)?;
::core::result::Result::Ok(
crate::v1_2::data_types::quantity::proportion_kind::ProportionKind::from_value(__v),
)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::quantity::reference_range::ReferenceRange {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "REFERENCE_RANGE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "REFERENCE_RANGE")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "meaning", &self.meaning)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "range", &self.range)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::data_types::quantity::reference_range::ReferenceRange
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["meaning", "range"];
enum __Field {
__Type,
__F0,
__F1,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"meaning" => ::core::result::Result::Ok(__Field::__F0),
"range" => ::core::result::Result::Ok(__Field::__F1),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"REFERENCE_RANGE",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::quantity::reference_range::ReferenceRange;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `REFERENCE_RANGE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("REFERENCE_RANGE"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("meaning"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("range"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::data_types::quantity::reference_range::ReferenceRange {
meaning: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("meaning"))?,
range: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("range"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"REFERENCE_RANGE",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_2::common::resource::resource_description::ResourceDescription
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
if self
.other_contributors
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.resource_package_uri.is_some() {
__n += 1;
}
if self.other_details.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "RESOURCE_DESCRIPTION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "RESOURCE_DESCRIPTION")?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"original_author",
&self.original_author,
)?;
if let Some(__v) = &self.other_contributors
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "other_contributors", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"lifecycle_state",
&self.lifecycle_state,
)?;
if let Some(__v) = &self.resource_package_uri {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "resource_package_uri", __v)?;
}
if let Some(__v) = &self.other_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "other_details", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "details", &self.details)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::common::resource::resource_description::ResourceDescription
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"details",
"lifecycle_state",
"original_author",
"other_contributors",
"other_details",
"resource_package_uri",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"original_author" => ::core::result::Result::Ok(__Field::__F0),
"other_contributors" => ::core::result::Result::Ok(__Field::__F1),
"lifecycle_state" => ::core::result::Result::Ok(__Field::__F2),
"resource_package_uri" => ::core::result::Result::Ok(__Field::__F3),
"other_details" => ::core::result::Result::Ok(__Field::__F4),
"details" => ::core::result::Result::Ok(__Field::__F5),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"RESOURCE_DESCRIPTION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::common::resource::resource_description::ResourceDescription;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `RESOURCE_DESCRIPTION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<_> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("RESOURCE_DESCRIPTION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("original_author"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_contributors"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("lifecycle_state"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("resource_package_uri"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("details"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::common::resource::resource_description::ResourceDescription {
original_author: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("original_author"))?,
other_contributors: __s1,
lifecycle_state: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("lifecycle_state"))?,
resource_package_uri: __s3.flatten(),
other_details: __s4.flatten(),
details: __s5
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("details"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"RESOURCE_DESCRIPTION",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_2::common::resource::resource_description_item::ResourceDescriptionItem
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.keywords.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.use_.is_some() {
__n += 1;
}
if self.misuse.is_some() {
__n += 1;
}
if self.copyright.is_some() {
__n += 1;
}
if self.original_resource_uri.is_some() {
__n += 1;
}
if self.other_details.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "RESOURCE_DESCRIPTION_ITEM", __n)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"_type",
"RESOURCE_DESCRIPTION_ITEM",
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "language", &self.language)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "purpose", &self.purpose)?;
if let Some(__v) = &self.keywords
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "keywords", __v)?;
}
if let Some(__v) = &self.use_ {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "use", __v)?;
}
if let Some(__v) = &self.misuse {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "misuse", __v)?;
}
if let Some(__v) = &self.copyright {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "copyright", __v)?;
}
if let Some(__v) = &self.original_resource_uri {
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"original_resource_uri",
__v,
)?;
}
if let Some(__v) = &self.other_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "other_details", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::common::resource::resource_description_item::ResourceDescriptionItem
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"copyright",
"keywords",
"language",
"misuse",
"original_resource_uri",
"other_details",
"purpose",
"use",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"language" => ::core::result::Result::Ok(__Field::__F0),
"purpose" => ::core::result::Result::Ok(__Field::__F1),
"keywords" => ::core::result::Result::Ok(__Field::__F2),
"use" => ::core::result::Result::Ok(__Field::__F3),
"misuse" => ::core::result::Result::Ok(__Field::__F4),
"copyright" => ::core::result::Result::Ok(__Field::__F5),
"original_resource_uri" => ::core::result::Result::Ok(__Field::__F6),
"other_details" => ::core::result::Result::Ok(__Field::__F7),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"RESOURCE_DESCRIPTION_ITEM",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value =
crate::v1_2::common::resource::resource_description_item::ResourceDescriptionItem;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `RESOURCE_DESCRIPTION_ITEM` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<_> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType(
"RESOURCE_DESCRIPTION_ITEM",
),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("language"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("purpose"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("keywords"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("use"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("misuse"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("copyright"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("original_resource_uri"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_details"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::common::resource::resource_description_item::ResourceDescriptionItem {
language: __s0.flatten().ok_or_else(|| ::serde::de::Error::missing_field("language"))?,
purpose: __s1.flatten().ok_or_else(|| ::serde::de::Error::missing_field("purpose"))?,
keywords: __s2,
use_: __s3.flatten(),
misuse: __s4.flatten(),
copyright: __s5.flatten(),
original_resource_uri: __s6.flatten(),
other_details: __s7.flatten(),
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"RESOURCE_DESCRIPTION_ITEM",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::common::generic::revision_history::RevisionHistory {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "REVISION_HISTORY", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "REVISION_HISTORY")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "items", &self.items)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::common::generic::revision_history::RevisionHistory
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["items"];
enum __Field {
__Type,
__F0,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"items" => ::core::result::Result::Ok(__Field::__F0),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"REVISION_HISTORY",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::common::generic::revision_history::RevisionHistory;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `REVISION_HISTORY` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("REVISION_HISTORY"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("items"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::common::generic::revision_history::RevisionHistory {
items: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("items"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"REVISION_HISTORY",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_2::common::generic::revision_history_item::RevisionHistoryItem
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "REVISION_HISTORY_ITEM", __n)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"_type",
"REVISION_HISTORY_ITEM",
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "version_id", &self.version_id)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "audits", &self.audits)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::common::generic::revision_history_item::RevisionHistoryItem
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["audits", "version_id"];
enum __Field {
__Type,
__F0,
__F1,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"version_id" => ::core::result::Result::Ok(__Field::__F0),
"audits" => ::core::result::Result::Ok(__Field::__F1),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"REVISION_HISTORY_ITEM",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::common::generic::revision_history_item::RevisionHistoryItem;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `REVISION_HISTORY_ITEM` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType(
"REVISION_HISTORY_ITEM",
),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("version_id"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("audits"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::common::generic::revision_history_item::RevisionHistoryItem {
version_id: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("version_id"))?,
audits: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("audits"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"REVISION_HISTORY_ITEM",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::demographic::role::Role {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 5usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.contacts.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.details.is_some() {
__n += 1;
}
if self
.relationships
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.time_validity.is_some() {
__n += 1;
}
if self
.capabilities
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "ROLE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "ROLE")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "identities", &self.identities)?;
if let Some(__v) = &self.contacts
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "contacts", __v)?;
}
if let Some(__v) = &self.details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "details", __v)?;
}
if let Some(__v) = &self.relationships
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "relationships", __v)?;
}
if let Some(__v) = &self.time_validity {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "time_validity", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "performer", &self.performer)?;
if let Some(__v) = &self.capabilities
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "capabilities", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::demographic::role::Role {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"capabilities",
"contacts",
"details",
"feeder_audit",
"identities",
"links",
"name",
"performer",
"relationships",
"time_validity",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
__F7,
__F8,
__F9,
__F10,
__F11,
__F12,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"identities" => ::core::result::Result::Ok(__Field::__F6),
"contacts" => ::core::result::Result::Ok(__Field::__F7),
"details" => ::core::result::Result::Ok(__Field::__F8),
"relationships" => ::core::result::Result::Ok(__Field::__F9),
"time_validity" => ::core::result::Result::Ok(__Field::__F10),
"performer" => ::core::result::Result::Ok(__Field::__F11),
"capabilities" => ::core::result::Result::Ok(__Field::__F12),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(__v, "ROLE", __FIELDS),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::demographic::role::Role;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `ROLE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s7: ::core::option::Option<_> = None;
let mut __s8: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s9: ::core::option::Option<_> = None;
let mut __s10: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s11: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s12: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("ROLE"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("identities"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F7 => {
if __s7.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("contacts"),
);
}
__s7 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F8 => {
if __s8.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("details"),
);
}
__s8 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F9 => {
if __s9.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("relationships"),
);
}
__s9 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F10 => {
if __s10.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_validity"),
);
}
__s10 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F11 => {
if __s11.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("performer"),
);
}
__s11 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F12 => {
if __s12.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("capabilities"),
);
}
__s12 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::demographic::role::Role {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("archetype_node_id"))?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
identities: __s6
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("identities"))?,
contacts: __s7,
details: __s8.flatten(),
relationships: __s9,
time_validity: __s10.flatten(),
performer: __s11
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("performer"))?,
capabilities: __s12,
})
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "ROLE", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::composition::content::navigation::section::Section {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.uid.is_some() {
__n += 1;
}
if self.links.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
if self.archetype_details.is_some() {
__n += 1;
}
if self.feeder_audit.is_some() {
__n += 1;
}
if self.items.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "SECTION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "SECTION")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "name", &self.name)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"archetype_node_id",
&self.archetype_node_id,
)?;
if let Some(__v) = &self.uid {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", __v)?;
}
if let Some(__v) = &self.links
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "links", __v)?;
}
if let Some(__v) = &self.archetype_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "archetype_details", __v)?;
}
if let Some(__v) = &self.feeder_audit {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "feeder_audit", __v)?;
}
if let Some(__v) = &self.items
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "items", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::composition::content::navigation::section::Section
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"archetype_details",
"archetype_node_id",
"feeder_audit",
"items",
"links",
"name",
"uid",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"name" => ::core::result::Result::Ok(__Field::__F0),
"archetype_node_id" => ::core::result::Result::Ok(__Field::__F1),
"uid" => ::core::result::Result::Ok(__Field::__F2),
"links" => ::core::result::Result::Ok(__Field::__F3),
"archetype_details" => ::core::result::Result::Ok(__Field::__F4),
"feeder_audit" => ::core::result::Result::Ok(__Field::__F5),
"items" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v, "SECTION", __FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::composition::content::navigation::section::Section;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `SECTION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<_> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("SECTION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("name"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_node_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("links"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("archetype_details"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("feeder_audit"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("items"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::composition::content::navigation::section::Section {
name: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
archetype_node_id: __s1.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("archetype_node_id")
})?,
uid: __s2.flatten(),
links: __s3,
archetype_details: __s4.flatten(),
feeder_audit: __s5.flatten(),
items: __s6,
},
)
}
}
::serde::Deserializer::deserialize_struct(__deserializer, "SECTION", __FIELDS, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::ehr_extract::sync_extract::sync_extract::SyncExtract {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self.items.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "SYNC_EXTRACT", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "SYNC_EXTRACT")?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"specification",
&self.specification,
)?;
if let Some(__v) = &self.items
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "items", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::ehr_extract::sync_extract::sync_extract::SyncExtract
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["items", "specification"];
enum __Field {
__Type,
__F0,
__F1,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"specification" => ::core::result::Result::Ok(__Field::__F0),
"items" => ::core::result::Result::Ok(__Field::__F1),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"SYNC_EXTRACT",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::ehr_extract::sync_extract::sync_extract::SyncExtract;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `SYNC_EXTRACT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("SYNC_EXTRACT"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("specification"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("items"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::ehr_extract::sync_extract::sync_extract::SyncExtract {
specification: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("specification"))?,
items: __s1,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"SYNC_EXTRACT",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_2::ehr_extract::sync_extract::sync_extract_request::SyncExtractRequest
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "SYNC_EXTRACT_REQUEST", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "SYNC_EXTRACT_REQUEST")?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"specification",
&self.specification,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::ehr_extract::sync_extract::sync_extract_request::SyncExtractRequest
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["specification"];
enum __Field {
__Type,
__F0,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"specification" => ::core::result::Result::Ok(__Field::__F0),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"SYNC_EXTRACT_REQUEST",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value =
crate::v1_2::ehr_extract::sync_extract::sync_extract_request::SyncExtractRequest;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `SYNC_EXTRACT_REQUEST` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("SYNC_EXTRACT_REQUEST"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("specification"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::ehr_extract::sync_extract::sync_extract_request::SyncExtractRequest {
specification: __s0.flatten().ok_or_else(|| ::serde::de::Error::missing_field("specification"))?,
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"SYNC_EXTRACT_REQUEST",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_2::ehr_extract::sync_extract::sync_extract_spec::SyncExtractSpec
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 2usize;
if self
.contribution_list
.as_ref()
.is_some_and(|__v| !__v.is_empty())
{
__n += 1;
}
if self.contributions_since.is_some() {
__n += 1;
}
if self.all_contributions.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "SYNC_EXTRACT_SPEC", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "SYNC_EXTRACT_SPEC")?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"includes_versions",
&self.includes_versions,
)?;
if let Some(__v) = &self.contribution_list
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "contribution_list", __v)?;
}
if let Some(__v) = &self.contributions_since {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "contributions_since", __v)?;
}
if let Some(__v) = &self.all_contributions {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "all_contributions", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::ehr_extract::sync_extract::sync_extract_spec::SyncExtractSpec
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"all_contributions",
"contribution_list",
"contributions_since",
"includes_versions",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"includes_versions" => ::core::result::Result::Ok(__Field::__F0),
"contribution_list" => ::core::result::Result::Ok(__Field::__F1),
"contributions_since" => ::core::result::Result::Ok(__Field::__F2),
"all_contributions" => ::core::result::Result::Ok(__Field::__F3),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"SYNC_EXTRACT_SPEC",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::ehr_extract::sync_extract::sync_extract_spec::SyncExtractSpec;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `SYNC_EXTRACT_SPEC` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<_> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("SYNC_EXTRACT_SPEC"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("includes_versions"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("contribution_list"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("contributions_since"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("all_contributions"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::ehr_extract::sync_extract::sync_extract_spec::SyncExtractSpec {
includes_versions: __s0.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("includes_versions")
})?,
contribution_list: __s1,
contributions_since: __s2.flatten(),
all_contributions: __s3.flatten(),
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"SYNC_EXTRACT_SPEC",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_2::support::terminology::terminology_access::TerminologyAccess
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 1usize;
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "TERMINOLOGY_ACCESS", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "TERMINOLOGY_ACCESS")?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::support::terminology::terminology_access::TerminologyAccess
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[];
enum __Field {
__Type,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"TERMINOLOGY_ACCESS",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::support::terminology::terminology_access::TerminologyAccess;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `TERMINOLOGY_ACCESS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("TERMINOLOGY_ACCESS"),
)?;
}
}
}
::core::result::Result::Ok(
crate::v1_2::support::terminology::terminology_access::TerminologyAccess {},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"TERMINOLOGY_ACCESS",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_2::support::terminology::terminology_service::TerminologyService
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 1usize;
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "TERMINOLOGY_SERVICE", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "TERMINOLOGY_SERVICE")?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::support::terminology::terminology_service::TerminologyService
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[];
enum __Field {
__Type,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"TERMINOLOGY_SERVICE",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::support::terminology::terminology_service::TerminologyService;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `TERMINOLOGY_SERVICE` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("TERMINOLOGY_SERVICE"),
)?;
}
}
}
::core::result::Result::Ok(
crate::v1_2::support::terminology::terminology_service::TerminologyService {},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"TERMINOLOGY_SERVICE",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::data_types::text::term_mapping::TermMapping {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.purpose.is_some() {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "TERM_MAPPING", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "TERM_MAPPING")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "match", &self.r#match)?;
if let Some(__v) = &self.purpose {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "purpose", __v)?;
}
::serde::ser::SerializeStruct::serialize_field(&mut __st, "target", &self.target)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::data_types::text::term_mapping::TermMapping {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["match", "purpose", "target"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"match" => ::core::result::Result::Ok(__Field::__F0),
"purpose" => ::core::result::Result::Ok(__Field::__F1),
"target" => ::core::result::Result::Ok(__Field::__F2),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"TERM_MAPPING",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::data_types::text::term_mapping::TermMapping;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `TERM_MAPPING` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("TERM_MAPPING"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("match"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("purpose"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("target"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::data_types::text::term_mapping::TermMapping {
r#match: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("match"))?,
purpose: __s1.flatten(),
target: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("target"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"TERM_MAPPING",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::common::resource::translation_details::TranslationDetails {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.accreditation.is_some() {
__n += 1;
}
if self.other_details.is_some() {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "TRANSLATION_DETAILS", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "TRANSLATION_DETAILS")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "language", &self.language)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "author", &self.author)?;
if let Some(__v) = &self.accreditation {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "accreditation", __v)?;
}
if let Some(__v) = &self.other_details {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "other_details", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::common::resource::translation_details::TranslationDetails
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["accreditation", "author", "language", "other_details"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"language" => ::core::result::Result::Ok(__Field::__F0),
"author" => ::core::result::Result::Ok(__Field::__F1),
"accreditation" => ::core::result::Result::Ok(__Field::__F2),
"other_details" => ::core::result::Result::Ok(__Field::__F3),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"TRANSLATION_DETAILS",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::common::resource::translation_details::TranslationDetails;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `TRANSLATION_DETAILS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("TRANSLATION_DETAILS"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("language"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("author"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("accreditation"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("other_details"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::common::resource::translation_details::TranslationDetails {
language: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("language"))?,
author: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("author"))?,
accreditation: __s2.flatten(),
other_details: __s3.flatten(),
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"TRANSLATION_DETAILS",
__FIELDS,
__Visitor,
)
}
}
impl<T: ::serde::Serialize> ::serde::Serialize
for crate::v1_2::common::change_control::version::Version<T>
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::common::change_control::version::Version::ImportedVersion(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
crate::v1_2::common::change_control::version::Version::OriginalVersion(__x) => {
::serde::Serialize::serialize(__x, __serializer)
}
}
}
}
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::Deserialize<'de>
for crate::v1_2::common::change_control::version::Version<T>
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &["IMPORTED_VERSION", "ORIGINAL_VERSION"];
struct __Visitor<T>(::core::marker::PhantomData<(T,)>);
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::de::Visitor<'de> for __Visitor<T> {
type Value = crate::v1_2::common::change_control::version::Version<T>;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `VERSION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"IMPORTED_VERSION" => ::core::result::Result::Ok(crate::v1_2::common::change_control::version::Version::ImportedVersion(::serde::Deserialize::deserialize(__rest)?)),
"ORIGINAL_VERSION" => ::core::result::Result::Ok(crate::v1_2::common::change_control::version::Version::OriginalVersion(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("VERSION", __other, "IMPORTED_VERSION, ORIGINAL_VERSION")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"VERSION",
&__other,
"IMPORTED_VERSION, ORIGINAL_VERSION",
))
}
None => {
::core::result::Result::Err(::openehr_base::serde_support::missing_type(
"VERSION",
"IMPORTED_VERSION, ORIGINAL_VERSION",
))
}
}
}
}
::serde::Deserializer::deserialize_map(
__deserializer,
__Visitor(::core::marker::PhantomData),
)
}
}
impl ::serde::Serialize for crate::v1_2::ehr::versioned_composition::VersionedComposition {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "VERSIONED_COMPOSITION", __n)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"_type",
"VERSIONED_COMPOSITION",
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "owner_id", &self.owner_id)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_created",
&self.time_created,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::ehr::versioned_composition::VersionedComposition
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["owner_id", "time_created", "uid"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"uid" => ::core::result::Result::Ok(__Field::__F0),
"owner_id" => ::core::result::Result::Ok(__Field::__F1),
"time_created" => ::core::result::Result::Ok(__Field::__F2),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"VERSIONED_COMPOSITION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::ehr::versioned_composition::VersionedComposition;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `VERSIONED_COMPOSITION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType(
"VERSIONED_COMPOSITION",
),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("owner_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_created"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::ehr::versioned_composition::VersionedComposition {
uid: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
owner_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("owner_id"))?,
time_created: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("time_created"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"VERSIONED_COMPOSITION",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::ehr::versioned_ehr_access::VersionedEhrAccess {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "VERSIONED_EHR_ACCESS", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "VERSIONED_EHR_ACCESS")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "owner_id", &self.owner_id)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_created",
&self.time_created,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::ehr::versioned_ehr_access::VersionedEhrAccess {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["owner_id", "time_created", "uid"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"uid" => ::core::result::Result::Ok(__Field::__F0),
"owner_id" => ::core::result::Result::Ok(__Field::__F1),
"time_created" => ::core::result::Result::Ok(__Field::__F2),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"VERSIONED_EHR_ACCESS",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::ehr::versioned_ehr_access::VersionedEhrAccess;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `VERSIONED_EHR_ACCESS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("VERSIONED_EHR_ACCESS"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("owner_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_created"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::ehr::versioned_ehr_access::VersionedEhrAccess {
uid: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
owner_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("owner_id"))?,
time_created: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("time_created"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"VERSIONED_EHR_ACCESS",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::ehr::versioned_ehr_status::VersionedEhrStatus {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "VERSIONED_EHR_STATUS", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "VERSIONED_EHR_STATUS")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "owner_id", &self.owner_id)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_created",
&self.time_created,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::ehr::versioned_ehr_status::VersionedEhrStatus {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["owner_id", "time_created", "uid"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"uid" => ::core::result::Result::Ok(__Field::__F0),
"owner_id" => ::core::result::Result::Ok(__Field::__F1),
"time_created" => ::core::result::Result::Ok(__Field::__F2),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"VERSIONED_EHR_STATUS",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::ehr::versioned_ehr_status::VersionedEhrStatus;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `VERSIONED_EHR_STATUS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("VERSIONED_EHR_STATUS"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("owner_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_created"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::ehr::versioned_ehr_status::VersionedEhrStatus {
uid: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
owner_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("owner_id"))?,
time_created: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("time_created"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"VERSIONED_EHR_STATUS",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::common::directory::versioned_folder::VersionedFolder {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "VERSIONED_FOLDER", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "VERSIONED_FOLDER")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "owner_id", &self.owner_id)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_created",
&self.time_created,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::common::directory::versioned_folder::VersionedFolder
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["owner_id", "time_created", "uid"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"uid" => ::core::result::Result::Ok(__Field::__F0),
"owner_id" => ::core::result::Result::Ok(__Field::__F1),
"time_created" => ::core::result::Result::Ok(__Field::__F2),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"VERSIONED_FOLDER",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::common::directory::versioned_folder::VersionedFolder;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `VERSIONED_FOLDER` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("VERSIONED_FOLDER"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("owner_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_created"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::common::directory::versioned_folder::VersionedFolder {
uid: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
owner_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("owner_id"))?,
time_created: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("time_created"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"VERSIONED_FOLDER",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_2::common::change_control::versioned_object::VersionedObjectData
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "VERSIONED_OBJECT", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "VERSIONED_OBJECT")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "owner_id", &self.owner_id)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_created",
&self.time_created,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::common::change_control::versioned_object::VersionedObjectData
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["owner_id", "time_created", "uid"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"uid" => ::core::result::Result::Ok(__Field::__F0),
"owner_id" => ::core::result::Result::Ok(__Field::__F1),
"time_created" => ::core::result::Result::Ok(__Field::__F2),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"VERSIONED_OBJECT",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::common::change_control::versioned_object::VersionedObjectData;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `VERSIONED_OBJECT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("VERSIONED_OBJECT"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("owner_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_created"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::common::change_control::versioned_object::VersionedObjectData {
uid: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
owner_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("owner_id"))?,
time_created: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("time_created"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"VERSIONED_OBJECT",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::common::change_control::versioned_object::VersionedObject {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::common::change_control::versioned_object::VersionedObject::VersionedComposition(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_2::common::change_control::versioned_object::VersionedObject::VersionedEhrAccess(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_2::common::change_control::versioned_object::VersionedObject::VersionedEhrStatus(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_2::common::change_control::versioned_object::VersionedObject::VersionedFolder(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_2::common::change_control::versioned_object::VersionedObject::VersionedParty(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_2::common::change_control::versioned_object::VersionedObject::VersionedObject(__x) => ::serde::Serialize::serialize(__x, __serializer),
}
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::common::change_control::versioned_object::VersionedObject
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &[
"VERSIONED_COMPOSITION",
"VERSIONED_EHR_ACCESS",
"VERSIONED_EHR_STATUS",
"VERSIONED_FOLDER",
"VERSIONED_OBJECT",
"VERSIONED_PARTY",
];
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::common::change_control::versioned_object::VersionedObject;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `VERSIONED_OBJECT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"VERSIONED_COMPOSITION" => ::core::result::Result::Ok(crate::v1_2::common::change_control::versioned_object::VersionedObject::VersionedComposition(::serde::Deserialize::deserialize(__rest)?)),
"VERSIONED_EHR_ACCESS" => ::core::result::Result::Ok(crate::v1_2::common::change_control::versioned_object::VersionedObject::VersionedEhrAccess(::serde::Deserialize::deserialize(__rest)?)),
"VERSIONED_EHR_STATUS" => ::core::result::Result::Ok(crate::v1_2::common::change_control::versioned_object::VersionedObject::VersionedEhrStatus(::serde::Deserialize::deserialize(__rest)?)),
"VERSIONED_FOLDER" => ::core::result::Result::Ok(crate::v1_2::common::change_control::versioned_object::VersionedObject::VersionedFolder(::serde::Deserialize::deserialize(__rest)?)),
"VERSIONED_OBJECT" => ::core::result::Result::Ok(crate::v1_2::common::change_control::versioned_object::VersionedObject::VersionedObject(::serde::Deserialize::deserialize(__rest)?)),
"VERSIONED_PARTY" => ::core::result::Result::Ok(crate::v1_2::common::change_control::versioned_object::VersionedObject::VersionedParty(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("VERSIONED_OBJECT", __other, "VERSIONED_COMPOSITION, VERSIONED_EHR_ACCESS, VERSIONED_EHR_STATUS, VERSIONED_FOLDER, VERSIONED_OBJECT, VERSIONED_PARTY")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"VERSIONED_OBJECT",
&__other,
"VERSIONED_COMPOSITION, VERSIONED_EHR_ACCESS, VERSIONED_EHR_STATUS, VERSIONED_FOLDER, VERSIONED_OBJECT, VERSIONED_PARTY",
))
}
None => {
let __rest =
::openehr_base::serde_support::TaggedRest::new(None, __buffered, __map);
::core::result::Result::Ok(crate::v1_2::common::change_control::versioned_object::VersionedObject::VersionedObject(::serde::Deserialize::deserialize(__rest)?))
}
}
}
}
::serde::Deserializer::deserialize_map(__deserializer, __Visitor)
}
}
impl ::serde::Serialize for crate::v1_2::demographic::versioned_party::VersionedParty {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 4usize;
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "VERSIONED_PARTY", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "VERSIONED_PARTY")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "owner_id", &self.owner_id)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_created",
&self.time_created,
)?;
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de> for crate::v1_2::demographic::versioned_party::VersionedParty {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["owner_id", "time_created", "uid"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"uid" => ::core::result::Result::Ok(__Field::__F0),
"owner_id" => ::core::result::Result::Ok(__Field::__F1),
"time_created" => ::core::result::Result::Ok(__Field::__F2),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"VERSIONED_PARTY",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::demographic::versioned_party::VersionedParty;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `VERSIONED_PARTY` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("VERSIONED_PARTY"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("owner_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_created"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::demographic::versioned_party::VersionedParty {
uid: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
owner_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("owner_id"))?,
time_created: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("time_created"))?,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"VERSIONED_PARTY",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize for crate::v1_2::ehr_extract::sync_extract::x_contribution::XContribution {
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 3usize;
if self.versions.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st = ::serde::Serializer::serialize_struct(__serializer, "X_CONTRIBUTION", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "X_CONTRIBUTION")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "audit", &self.audit)?;
if let Some(__v) = &self.versions
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "versions", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::ehr_extract::sync_extract::x_contribution::XContribution
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &["audit", "uid", "versions"];
enum __Field {
__Type,
__F0,
__F1,
__F2,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"uid" => ::core::result::Result::Ok(__Field::__F0),
"audit" => ::core::result::Result::Ok(__Field::__F1),
"versions" => ::core::result::Result::Ok(__Field::__F2),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"X_CONTRIBUTION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::ehr_extract::sync_extract::x_contribution::XContribution;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `X_CONTRIBUTION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("X_CONTRIBUTION"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("audit"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("versions"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::ehr_extract::sync_extract::x_contribution::XContribution {
uid: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
audit: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("audit"))?,
versions: __s2,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"X_CONTRIBUTION",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_2::ehr_extract::openehr_extract::x_versioned_composition::XVersionedComposition
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 6usize;
if self.revision_history.is_some() {
__n += 1;
}
if self.versions.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "X_VERSIONED_COMPOSITION", __n)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"_type",
"X_VERSIONED_COMPOSITION",
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "owner_id", &self.owner_id)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_created",
&self.time_created,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"total_version_count",
&self.total_version_count,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"extract_version_count",
&self.extract_version_count,
)?;
if let Some(__v) = &self.revision_history {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "revision_history", __v)?;
}
if let Some(__v) = &self.versions
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "versions", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::ehr_extract::openehr_extract::x_versioned_composition::XVersionedComposition
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"extract_version_count",
"owner_id",
"revision_history",
"time_created",
"total_version_count",
"uid",
"versions",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"uid" => ::core::result::Result::Ok(__Field::__F0),
"owner_id" => ::core::result::Result::Ok(__Field::__F1),
"time_created" => ::core::result::Result::Ok(__Field::__F2),
"total_version_count" => ::core::result::Result::Ok(__Field::__F3),
"extract_version_count" => ::core::result::Result::Ok(__Field::__F4),
"revision_history" => ::core::result::Result::Ok(__Field::__F5),
"versions" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"X_VERSIONED_COMPOSITION",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::ehr_extract::openehr_extract::x_versioned_composition::XVersionedComposition;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `X_VERSIONED_COMPOSITION` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType(
"X_VERSIONED_COMPOSITION",
),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("owner_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_created"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("total_version_count"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("extract_version_count"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("revision_history"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("versions"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::ehr_extract::openehr_extract::x_versioned_composition::XVersionedComposition {
uid: __s0.flatten().ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
owner_id: __s1.flatten().ok_or_else(|| ::serde::de::Error::missing_field("owner_id"))?,
time_created: __s2.flatten().ok_or_else(|| ::serde::de::Error::missing_field("time_created"))?,
total_version_count: __s3.flatten().ok_or_else(|| ::serde::de::Error::missing_field("total_version_count"))?,
extract_version_count: __s4.flatten().ok_or_else(|| ::serde::de::Error::missing_field("extract_version_count"))?,
revision_history: __s5.flatten(),
versions: __s6,
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"X_VERSIONED_COMPOSITION",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_2::ehr_extract::openehr_extract::x_versioned_ehr_access::XVersionedEhrAccess
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 6usize;
if self.revision_history.is_some() {
__n += 1;
}
if self.versions.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "X_VERSIONED_EHR_ACCESS", __n)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"_type",
"X_VERSIONED_EHR_ACCESS",
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "owner_id", &self.owner_id)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_created",
&self.time_created,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"total_version_count",
&self.total_version_count,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"extract_version_count",
&self.extract_version_count,
)?;
if let Some(__v) = &self.revision_history {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "revision_history", __v)?;
}
if let Some(__v) = &self.versions
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "versions", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::ehr_extract::openehr_extract::x_versioned_ehr_access::XVersionedEhrAccess
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"extract_version_count",
"owner_id",
"revision_history",
"time_created",
"total_version_count",
"uid",
"versions",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"uid" => ::core::result::Result::Ok(__Field::__F0),
"owner_id" => ::core::result::Result::Ok(__Field::__F1),
"time_created" => ::core::result::Result::Ok(__Field::__F2),
"total_version_count" => ::core::result::Result::Ok(__Field::__F3),
"extract_version_count" => ::core::result::Result::Ok(__Field::__F4),
"revision_history" => ::core::result::Result::Ok(__Field::__F5),
"versions" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"X_VERSIONED_EHR_ACCESS",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::ehr_extract::openehr_extract::x_versioned_ehr_access::XVersionedEhrAccess;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `X_VERSIONED_EHR_ACCESS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType(
"X_VERSIONED_EHR_ACCESS",
),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("owner_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_created"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("total_version_count"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("extract_version_count"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("revision_history"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("versions"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::ehr_extract::openehr_extract::x_versioned_ehr_access::XVersionedEhrAccess {
uid: __s0.flatten().ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
owner_id: __s1.flatten().ok_or_else(|| ::serde::de::Error::missing_field("owner_id"))?,
time_created: __s2.flatten().ok_or_else(|| ::serde::de::Error::missing_field("time_created"))?,
total_version_count: __s3.flatten().ok_or_else(|| ::serde::de::Error::missing_field("total_version_count"))?,
extract_version_count: __s4.flatten().ok_or_else(|| ::serde::de::Error::missing_field("extract_version_count"))?,
revision_history: __s5.flatten(),
versions: __s6,
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"X_VERSIONED_EHR_ACCESS",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_2::ehr_extract::openehr_extract::x_versioned_ehr_status::XVersionedEhrStatus
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 6usize;
if self.revision_history.is_some() {
__n += 1;
}
if self.versions.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "X_VERSIONED_EHR_STATUS", __n)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"_type",
"X_VERSIONED_EHR_STATUS",
)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "owner_id", &self.owner_id)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_created",
&self.time_created,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"total_version_count",
&self.total_version_count,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"extract_version_count",
&self.extract_version_count,
)?;
if let Some(__v) = &self.revision_history {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "revision_history", __v)?;
}
if let Some(__v) = &self.versions
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "versions", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::ehr_extract::openehr_extract::x_versioned_ehr_status::XVersionedEhrStatus
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"extract_version_count",
"owner_id",
"revision_history",
"time_created",
"total_version_count",
"uid",
"versions",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"uid" => ::core::result::Result::Ok(__Field::__F0),
"owner_id" => ::core::result::Result::Ok(__Field::__F1),
"time_created" => ::core::result::Result::Ok(__Field::__F2),
"total_version_count" => ::core::result::Result::Ok(__Field::__F3),
"extract_version_count" => ::core::result::Result::Ok(__Field::__F4),
"revision_history" => ::core::result::Result::Ok(__Field::__F5),
"versions" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"X_VERSIONED_EHR_STATUS",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value = crate::v1_2::ehr_extract::openehr_extract::x_versioned_ehr_status::XVersionedEhrStatus;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `X_VERSIONED_EHR_STATUS` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType(
"X_VERSIONED_EHR_STATUS",
),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("owner_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_created"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("total_version_count"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("extract_version_count"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("revision_history"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("versions"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::ehr_extract::openehr_extract::x_versioned_ehr_status::XVersionedEhrStatus {
uid: __s0.flatten().ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
owner_id: __s1.flatten().ok_or_else(|| ::serde::de::Error::missing_field("owner_id"))?,
time_created: __s2.flatten().ok_or_else(|| ::serde::de::Error::missing_field("time_created"))?,
total_version_count: __s3.flatten().ok_or_else(|| ::serde::de::Error::missing_field("total_version_count"))?,
extract_version_count: __s4.flatten().ok_or_else(|| ::serde::de::Error::missing_field("extract_version_count"))?,
revision_history: __s5.flatten(),
versions: __s6,
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"X_VERSIONED_EHR_STATUS",
__FIELDS,
__Visitor,
)
}
}
impl ::serde::Serialize
for crate::v1_2::ehr_extract::openehr_extract::x_versioned_folder::XVersionedFolder
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 6usize;
if self.revision_history.is_some() {
__n += 1;
}
if self.versions.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "X_VERSIONED_FOLDER", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "X_VERSIONED_FOLDER")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "owner_id", &self.owner_id)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_created",
&self.time_created,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"total_version_count",
&self.total_version_count,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"extract_version_count",
&self.extract_version_count,
)?;
if let Some(__v) = &self.revision_history {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "revision_history", __v)?;
}
if let Some(__v) = &self.versions
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "versions", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::ehr_extract::openehr_extract::x_versioned_folder::XVersionedFolder
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"extract_version_count",
"owner_id",
"revision_history",
"time_created",
"total_version_count",
"uid",
"versions",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"uid" => ::core::result::Result::Ok(__Field::__F0),
"owner_id" => ::core::result::Result::Ok(__Field::__F1),
"time_created" => ::core::result::Result::Ok(__Field::__F2),
"total_version_count" => ::core::result::Result::Ok(__Field::__F3),
"extract_version_count" => ::core::result::Result::Ok(__Field::__F4),
"revision_history" => ::core::result::Result::Ok(__Field::__F5),
"versions" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"X_VERSIONED_FOLDER",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value =
crate::v1_2::ehr_extract::openehr_extract::x_versioned_folder::XVersionedFolder;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `X_VERSIONED_FOLDER` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("X_VERSIONED_FOLDER"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("owner_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_created"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("total_version_count"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("extract_version_count"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("revision_history"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("versions"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::ehr_extract::openehr_extract::x_versioned_folder::XVersionedFolder {
uid: __s0.flatten().ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
owner_id: __s1.flatten().ok_or_else(|| ::serde::de::Error::missing_field("owner_id"))?,
time_created: __s2.flatten().ok_or_else(|| ::serde::de::Error::missing_field("time_created"))?,
total_version_count: __s3.flatten().ok_or_else(|| ::serde::de::Error::missing_field("total_version_count"))?,
extract_version_count: __s4.flatten().ok_or_else(|| ::serde::de::Error::missing_field("extract_version_count"))?,
revision_history: __s5.flatten(),
versions: __s6,
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"X_VERSIONED_FOLDER",
__FIELDS,
__Visitor,
)
}
}
impl<T: ::serde::Serialize> ::serde::Serialize
for crate::v1_2::ehr_extract::openehr_extract::x_versioned_object::XVersionedObjectData<T>
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 6usize;
if self.revision_history.is_some() {
__n += 1;
}
if self.versions.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "X_VERSIONED_OBJECT", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "X_VERSIONED_OBJECT")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "owner_id", &self.owner_id)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_created",
&self.time_created,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"total_version_count",
&self.total_version_count,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"extract_version_count",
&self.extract_version_count,
)?;
if let Some(__v) = &self.revision_history {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "revision_history", __v)?;
}
if let Some(__v) = &self.versions
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "versions", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::Deserialize<'de>
for crate::v1_2::ehr_extract::openehr_extract::x_versioned_object::XVersionedObjectData<T>
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"extract_version_count",
"owner_id",
"revision_history",
"time_created",
"total_version_count",
"uid",
"versions",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"uid" => ::core::result::Result::Ok(__Field::__F0),
"owner_id" => ::core::result::Result::Ok(__Field::__F1),
"time_created" => ::core::result::Result::Ok(__Field::__F2),
"total_version_count" => ::core::result::Result::Ok(__Field::__F3),
"extract_version_count" => ::core::result::Result::Ok(__Field::__F4),
"revision_history" => ::core::result::Result::Ok(__Field::__F5),
"versions" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"X_VERSIONED_OBJECT",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor<T>(::core::marker::PhantomData<(T,)>);
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::de::Visitor<'de> for __Visitor<T> {
type Value =
crate::v1_2::ehr_extract::openehr_extract::x_versioned_object::XVersionedObjectData<
T,
>;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `X_VERSIONED_OBJECT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("X_VERSIONED_OBJECT"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("owner_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_created"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("total_version_count"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("extract_version_count"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("revision_history"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("versions"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(crate::v1_2::ehr_extract::openehr_extract::x_versioned_object::XVersionedObjectData {
uid: __s0.flatten().ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
owner_id: __s1.flatten().ok_or_else(|| ::serde::de::Error::missing_field("owner_id"))?,
time_created: __s2.flatten().ok_or_else(|| ::serde::de::Error::missing_field("time_created"))?,
total_version_count: __s3.flatten().ok_or_else(|| ::serde::de::Error::missing_field("total_version_count"))?,
extract_version_count: __s4.flatten().ok_or_else(|| ::serde::de::Error::missing_field("extract_version_count"))?,
revision_history: __s5.flatten(),
versions: __s6,
})
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"X_VERSIONED_OBJECT",
__FIELDS,
__Visitor(::core::marker::PhantomData),
)
}
}
impl<T: ::serde::Serialize> ::serde::Serialize
for crate::v1_2::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject<T>
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
match self {
crate::v1_2::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject::XVersionedComposition(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_2::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject::XVersionedEhrAccess(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_2::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject::XVersionedEhrStatus(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_2::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject::XVersionedFolder(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_2::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject::XVersionedParty(__x) => ::serde::Serialize::serialize(__x, __serializer),
crate::v1_2::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject::XVersionedObject(__x) => ::serde::Serialize::serialize(__x, __serializer),
}
}
}
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::Deserialize<'de>
for crate::v1_2::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject<T>
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __TAGS: &[&str] = &[
"X_VERSIONED_COMPOSITION",
"X_VERSIONED_EHR_ACCESS",
"X_VERSIONED_EHR_STATUS",
"X_VERSIONED_FOLDER",
"X_VERSIONED_OBJECT",
"X_VERSIONED_PARTY",
];
struct __Visitor<T>(::core::marker::PhantomData<(T,)>);
impl<'de, T: ::serde::de::DeserializeOwned> ::serde::de::Visitor<'de> for __Visitor<T> {
type Value =
crate::v1_2::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject<T>;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `X_VERSIONED_OBJECT` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let (__tag, __buffered) =
::openehr_base::serde_support::read_slot_tag(&mut __map, __TAGS)?;
match __tag {
Some(::openehr_base::serde_support::TagMatch::Known(__t)) => {
let __rest = ::openehr_base::serde_support::TaggedRest::new(
Some(__t),
__buffered,
__map,
);
match __t {
"X_VERSIONED_COMPOSITION" => ::core::result::Result::Ok(crate::v1_2::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject::XVersionedComposition(::serde::Deserialize::deserialize(__rest)?)),
"X_VERSIONED_EHR_ACCESS" => ::core::result::Result::Ok(crate::v1_2::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject::XVersionedEhrAccess(::serde::Deserialize::deserialize(__rest)?)),
"X_VERSIONED_EHR_STATUS" => ::core::result::Result::Ok(crate::v1_2::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject::XVersionedEhrStatus(::serde::Deserialize::deserialize(__rest)?)),
"X_VERSIONED_FOLDER" => ::core::result::Result::Ok(crate::v1_2::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject::XVersionedFolder(::serde::Deserialize::deserialize(__rest)?)),
"X_VERSIONED_OBJECT" => ::core::result::Result::Ok(crate::v1_2::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject::XVersionedObject(::serde::Deserialize::deserialize(__rest)?)),
"X_VERSIONED_PARTY" => ::core::result::Result::Ok(crate::v1_2::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject::XVersionedParty(::serde::Deserialize::deserialize(__rest)?)),
__other => ::core::result::Result::Err(::openehr_base::serde_support::unexpected_type("X_VERSIONED_OBJECT", __other, "X_VERSIONED_COMPOSITION, X_VERSIONED_EHR_ACCESS, X_VERSIONED_EHR_STATUS, X_VERSIONED_FOLDER, X_VERSIONED_OBJECT, X_VERSIONED_PARTY")),
}
}
Some(::openehr_base::serde_support::TagMatch::Unknown(__other)) => {
::core::result::Result::Err(::openehr_base::serde_support::unexpected_type(
"X_VERSIONED_OBJECT",
&__other,
"X_VERSIONED_COMPOSITION, X_VERSIONED_EHR_ACCESS, X_VERSIONED_EHR_STATUS, X_VERSIONED_FOLDER, X_VERSIONED_OBJECT, X_VERSIONED_PARTY",
))
}
None => {
let __rest =
::openehr_base::serde_support::TaggedRest::new(None, __buffered, __map);
::core::result::Result::Ok(crate::v1_2::ehr_extract::openehr_extract::x_versioned_object::XVersionedObject::XVersionedObject(::serde::Deserialize::deserialize(__rest)?))
}
}
}
}
::serde::Deserializer::deserialize_map(
__deserializer,
__Visitor(::core::marker::PhantomData),
)
}
}
impl ::serde::Serialize
for crate::v1_2::ehr_extract::openehr_extract::x_versioned_party::XVersionedParty
{
fn serialize<__S: ::serde::Serializer>(
&self,
__serializer: __S,
) -> ::core::result::Result<__S::Ok, __S::Error> {
let mut __n = 6usize;
if self.revision_history.is_some() {
__n += 1;
}
if self.versions.as_ref().is_some_and(|__v| !__v.is_empty()) {
__n += 1;
}
let mut __st =
::serde::Serializer::serialize_struct(__serializer, "X_VERSIONED_PARTY", __n)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "_type", "X_VERSIONED_PARTY")?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "uid", &self.uid)?;
::serde::ser::SerializeStruct::serialize_field(&mut __st, "owner_id", &self.owner_id)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"time_created",
&self.time_created,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"total_version_count",
&self.total_version_count,
)?;
::serde::ser::SerializeStruct::serialize_field(
&mut __st,
"extract_version_count",
&self.extract_version_count,
)?;
if let Some(__v) = &self.revision_history {
::serde::ser::SerializeStruct::serialize_field(&mut __st, "revision_history", __v)?;
}
if let Some(__v) = &self.versions
&& !__v.is_empty()
{
::serde::ser::SerializeStruct::serialize_field(&mut __st, "versions", __v)?;
}
::serde::ser::SerializeStruct::end(__st)
}
}
impl<'de> ::serde::Deserialize<'de>
for crate::v1_2::ehr_extract::openehr_extract::x_versioned_party::XVersionedParty
{
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
const __FIELDS: &[&str] = &[
"extract_version_count",
"owner_id",
"revision_history",
"time_created",
"total_version_count",
"uid",
"versions",
];
enum __Field {
__Type,
__F0,
__F1,
__F2,
__F3,
__F4,
__F5,
__F6,
}
impl<'de> ::serde::Deserialize<'de> for __Field {
fn deserialize<__D: ::serde::Deserializer<'de>>(
__deserializer: __D,
) -> ::core::result::Result<Self, __D::Error> {
struct __KeyVisitor;
impl<'de> ::serde::de::Visitor<'de> for __KeyVisitor {
type Value = __Field;
fn expecting(
&self,
__f: &mut ::core::fmt::Formatter<'_>,
) -> ::core::fmt::Result {
__f.write_str("an object member name")
}
fn visit_str<__E: ::serde::de::Error>(
self,
__v: &str,
) -> ::core::result::Result<__Field, __E> {
match __v {
"_type" => ::core::result::Result::Ok(__Field::__Type),
"uid" => ::core::result::Result::Ok(__Field::__F0),
"owner_id" => ::core::result::Result::Ok(__Field::__F1),
"time_created" => ::core::result::Result::Ok(__Field::__F2),
"total_version_count" => ::core::result::Result::Ok(__Field::__F3),
"extract_version_count" => ::core::result::Result::Ok(__Field::__F4),
"revision_history" => ::core::result::Result::Ok(__Field::__F5),
"versions" => ::core::result::Result::Ok(__Field::__F6),
_ => ::core::result::Result::Err(
::openehr_base::serde_support::unknown_field(
__v,
"X_VERSIONED_PARTY",
__FIELDS,
),
),
}
}
}
::serde::Deserializer::deserialize_identifier(__deserializer, __KeyVisitor)
}
}
struct __Visitor;
impl<'de> ::serde::de::Visitor<'de> for __Visitor {
type Value =
crate::v1_2::ehr_extract::openehr_extract::x_versioned_party::XVersionedParty;
fn expecting(&self, __f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
__f.write_str("an openEHR `X_VERSIONED_PARTY` object")
}
fn visit_map<__A: ::serde::de::MapAccess<'de>>(
self,
mut __map: __A,
) -> ::core::result::Result<Self::Value, __A::Error> {
let mut __seen_type = false;
let mut __s0: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s1: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s2: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s3: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s4: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s5: ::core::option::Option<::core::option::Option<_>> = None;
let mut __s6: ::core::option::Option<_> = None;
while let Some(__key) = ::serde::de::MapAccess::next_key::<__Field>(&mut __map)? {
match __key {
__Field::__Type => {
if __seen_type {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("_type"),
);
}
__seen_type = true;
::serde::de::MapAccess::next_value_seed(
&mut __map,
::openehr_base::serde_support::ExpectedType("X_VERSIONED_PARTY"),
)?;
}
__Field::__F0 => {
if __s0.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("uid"),
);
}
__s0 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F1 => {
if __s1.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("owner_id"),
);
}
__s1 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F2 => {
if __s2.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("time_created"),
);
}
__s2 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F3 => {
if __s3.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("total_version_count"),
);
}
__s3 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F4 => {
if __s4.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("extract_version_count"),
);
}
__s4 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F5 => {
if __s5.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("revision_history"),
);
}
__s5 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
__Field::__F6 => {
if __s6.is_some() {
return ::core::result::Result::Err(
::serde::de::Error::duplicate_field("versions"),
);
}
__s6 = Some(::serde::de::MapAccess::next_value(&mut __map)?);
}
}
}
::core::result::Result::Ok(
crate::v1_2::ehr_extract::openehr_extract::x_versioned_party::XVersionedParty {
uid: __s0
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("uid"))?,
owner_id: __s1
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("owner_id"))?,
time_created: __s2
.flatten()
.ok_or_else(|| ::serde::de::Error::missing_field("time_created"))?,
total_version_count: __s3.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("total_version_count")
})?,
extract_version_count: __s4.flatten().ok_or_else(|| {
::serde::de::Error::missing_field("extract_version_count")
})?,
revision_history: __s5.flatten(),
versions: __s6,
},
)
}
}
::serde::Deserializer::deserialize_struct(
__deserializer,
"X_VERSIONED_PARTY",
__FIELDS,
__Visitor,
)
}
}