#![allow(
unused_imports,
clippy::large_enum_variant,
clippy::too_many_lines,
clippy::doc_markdown
)]
use crate::decode::{
choice_key, required, required_list, resource_type, Choice, Decoder, FhirJson, Obj, ObjWriter,
};
use crate::json::Json;
use crate::primitive::{Decimal, Kind, Primitive};
use crate::r4::*;
#[cfg(feature = "specialized")]
#[derive(Debug, Clone, PartialEq, Default)]
pub struct TestScript {
pub id: Option<String>,
pub meta: Option<Meta>,
pub implicit_rules: Option<Primitive<String>>,
pub language: Option<Primitive<String>>,
pub text: Option<Narrative>,
pub contained: Vec<Resource>,
pub extension: Vec<Extension>,
pub modifier_extension: Vec<Extension>,
pub url: Option<Primitive<String>>,
pub identifier: Option<Identifier>,
pub version: Option<Primitive<String>>,
pub name: Option<Primitive<String>>,
pub title: Option<Primitive<String>>,
pub status: Option<Primitive<String>>,
pub experimental: Option<Primitive<bool>>,
pub date: Option<Primitive<String>>,
pub publisher: Option<Primitive<String>>,
pub contact: Vec<ContactDetail>,
pub description: Option<Primitive<String>>,
pub use_context: Vec<UsageContext>,
pub jurisdiction: Vec<CodeableConcept>,
pub purpose: Option<Primitive<String>>,
pub copyright: Option<Primitive<String>>,
pub origin: Vec<TestScriptOrigin>,
pub destination: Vec<TestScriptDestination>,
pub metadata: Option<TestScriptMetadata>,
pub fixture: Vec<TestScriptFixture>,
pub profile: Vec<Reference>,
pub variable: Vec<TestScriptVariable>,
pub setup: Option<TestScriptSetup>,
pub test: Vec<TestScriptTest>,
pub teardown: Option<TestScriptTeardown>,
}
#[cfg(feature = "specialized")]
impl FhirJson for TestScript {
const TYPE_NAME: &'static str = "TestScript";
fn decode(v: &Json, d: &mut Decoder) -> Option<Self> {
let mut o = Obj::new(v, d)?;
resource_type(&mut o, d, "TestScript");
let r = TestScript {
id: o.string(d, "id"),
meta: o.one(d, "meta"),
implicit_rules: o.prim(d, "implicitRules", Kind::Uri),
language: o.prim(d, "language", Kind::Code),
text: o.one(d, "text"),
contained: o.list(d, "contained"),
extension: o.list(d, "extension"),
modifier_extension: o.list(d, "modifierExtension"),
url: o.prim(d, "url", Kind::Uri),
identifier: o.one(d, "identifier"),
version: o.prim(d, "version", Kind::String),
name: o.prim(d, "name", Kind::String),
title: o.prim(d, "title", Kind::String),
status: o.prim(d, "status", Kind::Code),
experimental: o.prim(d, "experimental", Kind::Boolean),
date: o.prim(d, "date", Kind::DateTime),
publisher: o.prim(d, "publisher", Kind::String),
contact: o.list(d, "contact"),
description: o.prim(d, "description", Kind::Markdown),
use_context: o.list(d, "useContext"),
jurisdiction: o.list(d, "jurisdiction"),
purpose: o.prim(d, "purpose", Kind::Markdown),
copyright: o.prim(d, "copyright", Kind::Markdown),
origin: o.list(d, "origin"),
destination: o.list(d, "destination"),
metadata: o.one(d, "metadata"),
fixture: o.list(d, "fixture"),
profile: o.list(d, "profile"),
variable: o.list(d, "variable"),
setup: o.one(d, "setup"),
test: o.list(d, "test"),
teardown: o.one(d, "teardown"),
};
required(d, "url", &r.url);
required(d, "name", &r.name);
required(d, "status", &r.status);
o.finish(d);
Some(r)
}
fn encode(&self) -> Json {
let mut w = ObjWriter::new();
w.raw("resourceType", Json::String("TestScript".into()));
w.string("id", &self.id);
w.one("meta", &self.meta);
w.prim("implicitRules", &self.implicit_rules);
w.prim("language", &self.language);
w.one("text", &self.text);
w.list("contained", &self.contained);
w.list("extension", &self.extension);
w.list("modifierExtension", &self.modifier_extension);
w.prim("url", &self.url);
w.one("identifier", &self.identifier);
w.prim("version", &self.version);
w.prim("name", &self.name);
w.prim("title", &self.title);
w.prim("status", &self.status);
w.prim("experimental", &self.experimental);
w.prim("date", &self.date);
w.prim("publisher", &self.publisher);
w.list("contact", &self.contact);
w.prim("description", &self.description);
w.list("useContext", &self.use_context);
w.list("jurisdiction", &self.jurisdiction);
w.prim("purpose", &self.purpose);
w.prim("copyright", &self.copyright);
w.list("origin", &self.origin);
w.list("destination", &self.destination);
w.one("metadata", &self.metadata);
w.list("fixture", &self.fixture);
w.list("profile", &self.profile);
w.list("variable", &self.variable);
w.one("setup", &self.setup);
w.list("test", &self.test);
w.one("teardown", &self.teardown);
w.finish()
}
}
#[cfg(feature = "specialized")]
#[derive(Debug, Clone, PartialEq, Default)]
pub struct TestScriptOrigin {
pub id: Option<String>,
pub extension: Vec<Extension>,
pub modifier_extension: Vec<Extension>,
pub index: Option<Primitive<i32>>,
pub profile: Option<Coding>,
}
#[cfg(feature = "specialized")]
impl FhirJson for TestScriptOrigin {
const TYPE_NAME: &'static str = "TestScriptOrigin";
fn decode(v: &Json, d: &mut Decoder) -> Option<Self> {
let mut o = Obj::new(v, d)?;
let r = TestScriptOrigin {
id: o.string(d, "id"),
extension: o.list(d, "extension"),
modifier_extension: o.list(d, "modifierExtension"),
index: o.prim(d, "index", Kind::Integer),
profile: o.one(d, "profile"),
};
required(d, "index", &r.index);
required(d, "profile", &r.profile);
o.finish(d);
Some(r)
}
fn encode(&self) -> Json {
let mut w = ObjWriter::new();
w.string("id", &self.id);
w.list("extension", &self.extension);
w.list("modifierExtension", &self.modifier_extension);
w.prim("index", &self.index);
w.one("profile", &self.profile);
w.finish()
}
}
#[cfg(feature = "specialized")]
#[derive(Debug, Clone, PartialEq, Default)]
pub struct TestScriptDestination {
pub id: Option<String>,
pub extension: Vec<Extension>,
pub modifier_extension: Vec<Extension>,
pub index: Option<Primitive<i32>>,
pub profile: Option<Coding>,
}
#[cfg(feature = "specialized")]
impl FhirJson for TestScriptDestination {
const TYPE_NAME: &'static str = "TestScriptDestination";
fn decode(v: &Json, d: &mut Decoder) -> Option<Self> {
let mut o = Obj::new(v, d)?;
let r = TestScriptDestination {
id: o.string(d, "id"),
extension: o.list(d, "extension"),
modifier_extension: o.list(d, "modifierExtension"),
index: o.prim(d, "index", Kind::Integer),
profile: o.one(d, "profile"),
};
required(d, "index", &r.index);
required(d, "profile", &r.profile);
o.finish(d);
Some(r)
}
fn encode(&self) -> Json {
let mut w = ObjWriter::new();
w.string("id", &self.id);
w.list("extension", &self.extension);
w.list("modifierExtension", &self.modifier_extension);
w.prim("index", &self.index);
w.one("profile", &self.profile);
w.finish()
}
}
#[cfg(feature = "specialized")]
#[derive(Debug, Clone, PartialEq, Default)]
pub struct TestScriptMetadata {
pub id: Option<String>,
pub extension: Vec<Extension>,
pub modifier_extension: Vec<Extension>,
pub link: Vec<TestScriptMetadataLink>,
pub capability: Vec<TestScriptMetadataCapability>,
}
#[cfg(feature = "specialized")]
impl FhirJson for TestScriptMetadata {
const TYPE_NAME: &'static str = "TestScriptMetadata";
fn decode(v: &Json, d: &mut Decoder) -> Option<Self> {
let mut o = Obj::new(v, d)?;
let r = TestScriptMetadata {
id: o.string(d, "id"),
extension: o.list(d, "extension"),
modifier_extension: o.list(d, "modifierExtension"),
link: o.list(d, "link"),
capability: o.list(d, "capability"),
};
required_list(d, "capability", &r.capability, 1);
o.finish(d);
Some(r)
}
fn encode(&self) -> Json {
let mut w = ObjWriter::new();
w.string("id", &self.id);
w.list("extension", &self.extension);
w.list("modifierExtension", &self.modifier_extension);
w.list("link", &self.link);
w.list("capability", &self.capability);
w.finish()
}
}
#[cfg(feature = "specialized")]
#[derive(Debug, Clone, PartialEq, Default)]
pub struct TestScriptMetadataLink {
pub id: Option<String>,
pub extension: Vec<Extension>,
pub modifier_extension: Vec<Extension>,
pub url: Option<Primitive<String>>,
pub description: Option<Primitive<String>>,
}
#[cfg(feature = "specialized")]
impl FhirJson for TestScriptMetadataLink {
const TYPE_NAME: &'static str = "TestScriptMetadataLink";
fn decode(v: &Json, d: &mut Decoder) -> Option<Self> {
let mut o = Obj::new(v, d)?;
let r = TestScriptMetadataLink {
id: o.string(d, "id"),
extension: o.list(d, "extension"),
modifier_extension: o.list(d, "modifierExtension"),
url: o.prim(d, "url", Kind::Uri),
description: o.prim(d, "description", Kind::String),
};
required(d, "url", &r.url);
o.finish(d);
Some(r)
}
fn encode(&self) -> Json {
let mut w = ObjWriter::new();
w.string("id", &self.id);
w.list("extension", &self.extension);
w.list("modifierExtension", &self.modifier_extension);
w.prim("url", &self.url);
w.prim("description", &self.description);
w.finish()
}
}
#[cfg(feature = "specialized")]
#[derive(Debug, Clone, PartialEq, Default)]
pub struct TestScriptMetadataCapability {
pub id: Option<String>,
pub extension: Vec<Extension>,
pub modifier_extension: Vec<Extension>,
pub required: Option<Primitive<bool>>,
pub validated: Option<Primitive<bool>>,
pub description: Option<Primitive<String>>,
pub origin: Vec<Primitive<i32>>,
pub destination: Option<Primitive<i32>>,
pub link: Vec<Primitive<String>>,
pub capabilities: Option<Primitive<String>>,
}
#[cfg(feature = "specialized")]
impl FhirJson for TestScriptMetadataCapability {
const TYPE_NAME: &'static str = "TestScriptMetadataCapability";
fn decode(v: &Json, d: &mut Decoder) -> Option<Self> {
let mut o = Obj::new(v, d)?;
let r = TestScriptMetadataCapability {
id: o.string(d, "id"),
extension: o.list(d, "extension"),
modifier_extension: o.list(d, "modifierExtension"),
required: o.prim(d, "required", Kind::Boolean),
validated: o.prim(d, "validated", Kind::Boolean),
description: o.prim(d, "description", Kind::String),
origin: o.prim_list(d, "origin", Kind::Integer),
destination: o.prim(d, "destination", Kind::Integer),
link: o.prim_list(d, "link", Kind::Uri),
capabilities: o.prim(d, "capabilities", Kind::Canonical),
};
required(d, "required", &r.required);
required(d, "validated", &r.validated);
required(d, "capabilities", &r.capabilities);
o.finish(d);
Some(r)
}
fn encode(&self) -> Json {
let mut w = ObjWriter::new();
w.string("id", &self.id);
w.list("extension", &self.extension);
w.list("modifierExtension", &self.modifier_extension);
w.prim("required", &self.required);
w.prim("validated", &self.validated);
w.prim("description", &self.description);
w.prim_list("origin", &self.origin);
w.prim("destination", &self.destination);
w.prim_list("link", &self.link);
w.prim("capabilities", &self.capabilities);
w.finish()
}
}
#[cfg(feature = "specialized")]
#[derive(Debug, Clone, PartialEq, Default)]
pub struct TestScriptFixture {
pub id: Option<String>,
pub extension: Vec<Extension>,
pub modifier_extension: Vec<Extension>,
pub autocreate: Option<Primitive<bool>>,
pub autodelete: Option<Primitive<bool>>,
pub resource: Option<Reference>,
}
#[cfg(feature = "specialized")]
impl FhirJson for TestScriptFixture {
const TYPE_NAME: &'static str = "TestScriptFixture";
fn decode(v: &Json, d: &mut Decoder) -> Option<Self> {
let mut o = Obj::new(v, d)?;
let r = TestScriptFixture {
id: o.string(d, "id"),
extension: o.list(d, "extension"),
modifier_extension: o.list(d, "modifierExtension"),
autocreate: o.prim(d, "autocreate", Kind::Boolean),
autodelete: o.prim(d, "autodelete", Kind::Boolean),
resource: o.one(d, "resource"),
};
required(d, "autocreate", &r.autocreate);
required(d, "autodelete", &r.autodelete);
o.finish(d);
Some(r)
}
fn encode(&self) -> Json {
let mut w = ObjWriter::new();
w.string("id", &self.id);
w.list("extension", &self.extension);
w.list("modifierExtension", &self.modifier_extension);
w.prim("autocreate", &self.autocreate);
w.prim("autodelete", &self.autodelete);
w.one("resource", &self.resource);
w.finish()
}
}
#[cfg(feature = "specialized")]
#[derive(Debug, Clone, PartialEq, Default)]
pub struct TestScriptVariable {
pub id: Option<String>,
pub extension: Vec<Extension>,
pub modifier_extension: Vec<Extension>,
pub name: Option<Primitive<String>>,
pub default_value: Option<Primitive<String>>,
pub description: Option<Primitive<String>>,
pub expression: Option<Primitive<String>>,
pub header_field: Option<Primitive<String>>,
pub hint: Option<Primitive<String>>,
pub path: Option<Primitive<String>>,
pub source_id: Option<Primitive<String>>,
}
#[cfg(feature = "specialized")]
impl FhirJson for TestScriptVariable {
const TYPE_NAME: &'static str = "TestScriptVariable";
fn decode(v: &Json, d: &mut Decoder) -> Option<Self> {
let mut o = Obj::new(v, d)?;
let r = TestScriptVariable {
id: o.string(d, "id"),
extension: o.list(d, "extension"),
modifier_extension: o.list(d, "modifierExtension"),
name: o.prim(d, "name", Kind::String),
default_value: o.prim(d, "defaultValue", Kind::String),
description: o.prim(d, "description", Kind::String),
expression: o.prim(d, "expression", Kind::String),
header_field: o.prim(d, "headerField", Kind::String),
hint: o.prim(d, "hint", Kind::String),
path: o.prim(d, "path", Kind::String),
source_id: o.prim(d, "sourceId", Kind::Id),
};
required(d, "name", &r.name);
o.finish(d);
Some(r)
}
fn encode(&self) -> Json {
let mut w = ObjWriter::new();
w.string("id", &self.id);
w.list("extension", &self.extension);
w.list("modifierExtension", &self.modifier_extension);
w.prim("name", &self.name);
w.prim("defaultValue", &self.default_value);
w.prim("description", &self.description);
w.prim("expression", &self.expression);
w.prim("headerField", &self.header_field);
w.prim("hint", &self.hint);
w.prim("path", &self.path);
w.prim("sourceId", &self.source_id);
w.finish()
}
}
#[cfg(feature = "specialized")]
#[derive(Debug, Clone, PartialEq, Default)]
pub struct TestScriptSetup {
pub id: Option<String>,
pub extension: Vec<Extension>,
pub modifier_extension: Vec<Extension>,
pub action: Vec<TestScriptSetupAction>,
}
#[cfg(feature = "specialized")]
impl FhirJson for TestScriptSetup {
const TYPE_NAME: &'static str = "TestScriptSetup";
fn decode(v: &Json, d: &mut Decoder) -> Option<Self> {
let mut o = Obj::new(v, d)?;
let r = TestScriptSetup {
id: o.string(d, "id"),
extension: o.list(d, "extension"),
modifier_extension: o.list(d, "modifierExtension"),
action: o.list(d, "action"),
};
required_list(d, "action", &r.action, 1);
o.finish(d);
Some(r)
}
fn encode(&self) -> Json {
let mut w = ObjWriter::new();
w.string("id", &self.id);
w.list("extension", &self.extension);
w.list("modifierExtension", &self.modifier_extension);
w.list("action", &self.action);
w.finish()
}
}
#[cfg(feature = "specialized")]
#[derive(Debug, Clone, PartialEq, Default)]
pub struct TestScriptSetupAction {
pub id: Option<String>,
pub extension: Vec<Extension>,
pub modifier_extension: Vec<Extension>,
pub operation: Option<TestScriptSetupActionOperation>,
pub assert: Option<TestScriptSetupActionAssert>,
}
#[cfg(feature = "specialized")]
impl FhirJson for TestScriptSetupAction {
const TYPE_NAME: &'static str = "TestScriptSetupAction";
fn decode(v: &Json, d: &mut Decoder) -> Option<Self> {
let mut o = Obj::new(v, d)?;
let r = TestScriptSetupAction {
id: o.string(d, "id"),
extension: o.list(d, "extension"),
modifier_extension: o.list(d, "modifierExtension"),
operation: o.one(d, "operation"),
assert: o.one(d, "assert"),
};
o.finish(d);
Some(r)
}
fn encode(&self) -> Json {
let mut w = ObjWriter::new();
w.string("id", &self.id);
w.list("extension", &self.extension);
w.list("modifierExtension", &self.modifier_extension);
w.one("operation", &self.operation);
w.one("assert", &self.assert);
w.finish()
}
}
#[cfg(feature = "specialized")]
#[derive(Debug, Clone, PartialEq, Default)]
pub struct TestScriptSetupActionOperation {
pub id: Option<String>,
pub extension: Vec<Extension>,
pub modifier_extension: Vec<Extension>,
pub type_: Option<Coding>,
pub resource: Option<Primitive<String>>,
pub label: Option<Primitive<String>>,
pub description: Option<Primitive<String>>,
pub accept: Option<Primitive<String>>,
pub content_type: Option<Primitive<String>>,
pub destination: Option<Primitive<i32>>,
pub encode_request_url: Option<Primitive<bool>>,
pub method: Option<Primitive<String>>,
pub origin: Option<Primitive<i32>>,
pub params: Option<Primitive<String>>,
pub request_header: Vec<TestScriptSetupActionOperationRequestHeader>,
pub request_id: Option<Primitive<String>>,
pub response_id: Option<Primitive<String>>,
pub source_id: Option<Primitive<String>>,
pub target_id: Option<Primitive<String>>,
pub url: Option<Primitive<String>>,
}
#[cfg(feature = "specialized")]
impl FhirJson for TestScriptSetupActionOperation {
const TYPE_NAME: &'static str = "TestScriptSetupActionOperation";
fn decode(v: &Json, d: &mut Decoder) -> Option<Self> {
let mut o = Obj::new(v, d)?;
let r = TestScriptSetupActionOperation {
id: o.string(d, "id"),
extension: o.list(d, "extension"),
modifier_extension: o.list(d, "modifierExtension"),
type_: o.one(d, "type"),
resource: o.prim(d, "resource", Kind::Code),
label: o.prim(d, "label", Kind::String),
description: o.prim(d, "description", Kind::String),
accept: o.prim(d, "accept", Kind::Code),
content_type: o.prim(d, "contentType", Kind::Code),
destination: o.prim(d, "destination", Kind::Integer),
encode_request_url: o.prim(d, "encodeRequestUrl", Kind::Boolean),
method: o.prim(d, "method", Kind::Code),
origin: o.prim(d, "origin", Kind::Integer),
params: o.prim(d, "params", Kind::String),
request_header: o.list(d, "requestHeader"),
request_id: o.prim(d, "requestId", Kind::Id),
response_id: o.prim(d, "responseId", Kind::Id),
source_id: o.prim(d, "sourceId", Kind::Id),
target_id: o.prim(d, "targetId", Kind::Id),
url: o.prim(d, "url", Kind::String),
};
required(d, "encodeRequestUrl", &r.encode_request_url);
o.finish(d);
Some(r)
}
fn encode(&self) -> Json {
let mut w = ObjWriter::new();
w.string("id", &self.id);
w.list("extension", &self.extension);
w.list("modifierExtension", &self.modifier_extension);
w.one("type", &self.type_);
w.prim("resource", &self.resource);
w.prim("label", &self.label);
w.prim("description", &self.description);
w.prim("accept", &self.accept);
w.prim("contentType", &self.content_type);
w.prim("destination", &self.destination);
w.prim("encodeRequestUrl", &self.encode_request_url);
w.prim("method", &self.method);
w.prim("origin", &self.origin);
w.prim("params", &self.params);
w.list("requestHeader", &self.request_header);
w.prim("requestId", &self.request_id);
w.prim("responseId", &self.response_id);
w.prim("sourceId", &self.source_id);
w.prim("targetId", &self.target_id);
w.prim("url", &self.url);
w.finish()
}
}
#[cfg(feature = "specialized")]
#[derive(Debug, Clone, PartialEq, Default)]
pub struct TestScriptSetupActionOperationRequestHeader {
pub id: Option<String>,
pub extension: Vec<Extension>,
pub modifier_extension: Vec<Extension>,
pub field: Option<Primitive<String>>,
pub value: Option<Primitive<String>>,
}
#[cfg(feature = "specialized")]
impl FhirJson for TestScriptSetupActionOperationRequestHeader {
const TYPE_NAME: &'static str = "TestScriptSetupActionOperationRequestHeader";
fn decode(v: &Json, d: &mut Decoder) -> Option<Self> {
let mut o = Obj::new(v, d)?;
let r = TestScriptSetupActionOperationRequestHeader {
id: o.string(d, "id"),
extension: o.list(d, "extension"),
modifier_extension: o.list(d, "modifierExtension"),
field: o.prim(d, "field", Kind::String),
value: o.prim(d, "value", Kind::String),
};
required(d, "field", &r.field);
required(d, "value", &r.value);
o.finish(d);
Some(r)
}
fn encode(&self) -> Json {
let mut w = ObjWriter::new();
w.string("id", &self.id);
w.list("extension", &self.extension);
w.list("modifierExtension", &self.modifier_extension);
w.prim("field", &self.field);
w.prim("value", &self.value);
w.finish()
}
}
#[cfg(feature = "specialized")]
#[derive(Debug, Clone, PartialEq, Default)]
pub struct TestScriptSetupActionAssert {
pub id: Option<String>,
pub extension: Vec<Extension>,
pub modifier_extension: Vec<Extension>,
pub label: Option<Primitive<String>>,
pub description: Option<Primitive<String>>,
pub direction: Option<Primitive<String>>,
pub compare_to_source_id: Option<Primitive<String>>,
pub compare_to_source_expression: Option<Primitive<String>>,
pub compare_to_source_path: Option<Primitive<String>>,
pub content_type: Option<Primitive<String>>,
pub expression: Option<Primitive<String>>,
pub header_field: Option<Primitive<String>>,
pub minimum_id: Option<Primitive<String>>,
pub navigation_links: Option<Primitive<bool>>,
pub operator: Option<Primitive<String>>,
pub path: Option<Primitive<String>>,
pub request_method: Option<Primitive<String>>,
pub request_url: Option<Primitive<String>>,
pub resource: Option<Primitive<String>>,
pub response: Option<Primitive<String>>,
pub response_code: Option<Primitive<String>>,
pub source_id: Option<Primitive<String>>,
pub validate_profile_id: Option<Primitive<String>>,
pub value: Option<Primitive<String>>,
pub warning_only: Option<Primitive<bool>>,
}
#[cfg(feature = "specialized")]
impl FhirJson for TestScriptSetupActionAssert {
const TYPE_NAME: &'static str = "TestScriptSetupActionAssert";
fn decode(v: &Json, d: &mut Decoder) -> Option<Self> {
let mut o = Obj::new(v, d)?;
let r = TestScriptSetupActionAssert {
id: o.string(d, "id"),
extension: o.list(d, "extension"),
modifier_extension: o.list(d, "modifierExtension"),
label: o.prim(d, "label", Kind::String),
description: o.prim(d, "description", Kind::String),
direction: o.prim(d, "direction", Kind::Code),
compare_to_source_id: o.prim(d, "compareToSourceId", Kind::String),
compare_to_source_expression: o.prim(d, "compareToSourceExpression", Kind::String),
compare_to_source_path: o.prim(d, "compareToSourcePath", Kind::String),
content_type: o.prim(d, "contentType", Kind::Code),
expression: o.prim(d, "expression", Kind::String),
header_field: o.prim(d, "headerField", Kind::String),
minimum_id: o.prim(d, "minimumId", Kind::String),
navigation_links: o.prim(d, "navigationLinks", Kind::Boolean),
operator: o.prim(d, "operator", Kind::Code),
path: o.prim(d, "path", Kind::String),
request_method: o.prim(d, "requestMethod", Kind::Code),
request_url: o.prim(d, "requestURL", Kind::String),
resource: o.prim(d, "resource", Kind::Code),
response: o.prim(d, "response", Kind::Code),
response_code: o.prim(d, "responseCode", Kind::String),
source_id: o.prim(d, "sourceId", Kind::Id),
validate_profile_id: o.prim(d, "validateProfileId", Kind::Id),
value: o.prim(d, "value", Kind::String),
warning_only: o.prim(d, "warningOnly", Kind::Boolean),
};
required(d, "warningOnly", &r.warning_only);
o.finish(d);
Some(r)
}
fn encode(&self) -> Json {
let mut w = ObjWriter::new();
w.string("id", &self.id);
w.list("extension", &self.extension);
w.list("modifierExtension", &self.modifier_extension);
w.prim("label", &self.label);
w.prim("description", &self.description);
w.prim("direction", &self.direction);
w.prim("compareToSourceId", &self.compare_to_source_id);
w.prim(
"compareToSourceExpression",
&self.compare_to_source_expression,
);
w.prim("compareToSourcePath", &self.compare_to_source_path);
w.prim("contentType", &self.content_type);
w.prim("expression", &self.expression);
w.prim("headerField", &self.header_field);
w.prim("minimumId", &self.minimum_id);
w.prim("navigationLinks", &self.navigation_links);
w.prim("operator", &self.operator);
w.prim("path", &self.path);
w.prim("requestMethod", &self.request_method);
w.prim("requestURL", &self.request_url);
w.prim("resource", &self.resource);
w.prim("response", &self.response);
w.prim("responseCode", &self.response_code);
w.prim("sourceId", &self.source_id);
w.prim("validateProfileId", &self.validate_profile_id);
w.prim("value", &self.value);
w.prim("warningOnly", &self.warning_only);
w.finish()
}
}
#[cfg(feature = "specialized")]
#[derive(Debug, Clone, PartialEq, Default)]
pub struct TestScriptTest {
pub id: Option<String>,
pub extension: Vec<Extension>,
pub modifier_extension: Vec<Extension>,
pub name: Option<Primitive<String>>,
pub description: Option<Primitive<String>>,
pub action: Vec<TestScriptTestAction>,
}
#[cfg(feature = "specialized")]
impl FhirJson for TestScriptTest {
const TYPE_NAME: &'static str = "TestScriptTest";
fn decode(v: &Json, d: &mut Decoder) -> Option<Self> {
let mut o = Obj::new(v, d)?;
let r = TestScriptTest {
id: o.string(d, "id"),
extension: o.list(d, "extension"),
modifier_extension: o.list(d, "modifierExtension"),
name: o.prim(d, "name", Kind::String),
description: o.prim(d, "description", Kind::String),
action: o.list(d, "action"),
};
required_list(d, "action", &r.action, 1);
o.finish(d);
Some(r)
}
fn encode(&self) -> Json {
let mut w = ObjWriter::new();
w.string("id", &self.id);
w.list("extension", &self.extension);
w.list("modifierExtension", &self.modifier_extension);
w.prim("name", &self.name);
w.prim("description", &self.description);
w.list("action", &self.action);
w.finish()
}
}
#[cfg(feature = "specialized")]
#[derive(Debug, Clone, PartialEq, Default)]
pub struct TestScriptTestAction {
pub id: Option<String>,
pub extension: Vec<Extension>,
pub modifier_extension: Vec<Extension>,
pub operation: Option<TestScriptSetupActionOperation>,
pub assert: Option<TestScriptSetupActionAssert>,
}
#[cfg(feature = "specialized")]
impl FhirJson for TestScriptTestAction {
const TYPE_NAME: &'static str = "TestScriptTestAction";
fn decode(v: &Json, d: &mut Decoder) -> Option<Self> {
let mut o = Obj::new(v, d)?;
let r = TestScriptTestAction {
id: o.string(d, "id"),
extension: o.list(d, "extension"),
modifier_extension: o.list(d, "modifierExtension"),
operation: o.one(d, "operation"),
assert: o.one(d, "assert"),
};
o.finish(d);
Some(r)
}
fn encode(&self) -> Json {
let mut w = ObjWriter::new();
w.string("id", &self.id);
w.list("extension", &self.extension);
w.list("modifierExtension", &self.modifier_extension);
w.one("operation", &self.operation);
w.one("assert", &self.assert);
w.finish()
}
}
#[cfg(feature = "specialized")]
#[derive(Debug, Clone, PartialEq, Default)]
pub struct TestScriptTeardown {
pub id: Option<String>,
pub extension: Vec<Extension>,
pub modifier_extension: Vec<Extension>,
pub action: Vec<TestScriptTeardownAction>,
}
#[cfg(feature = "specialized")]
impl FhirJson for TestScriptTeardown {
const TYPE_NAME: &'static str = "TestScriptTeardown";
fn decode(v: &Json, d: &mut Decoder) -> Option<Self> {
let mut o = Obj::new(v, d)?;
let r = TestScriptTeardown {
id: o.string(d, "id"),
extension: o.list(d, "extension"),
modifier_extension: o.list(d, "modifierExtension"),
action: o.list(d, "action"),
};
required_list(d, "action", &r.action, 1);
o.finish(d);
Some(r)
}
fn encode(&self) -> Json {
let mut w = ObjWriter::new();
w.string("id", &self.id);
w.list("extension", &self.extension);
w.list("modifierExtension", &self.modifier_extension);
w.list("action", &self.action);
w.finish()
}
}
#[cfg(feature = "specialized")]
#[derive(Debug, Clone, PartialEq, Default)]
pub struct TestScriptTeardownAction {
pub id: Option<String>,
pub extension: Vec<Extension>,
pub modifier_extension: Vec<Extension>,
pub operation: Option<TestScriptSetupActionOperation>,
}
#[cfg(feature = "specialized")]
impl FhirJson for TestScriptTeardownAction {
const TYPE_NAME: &'static str = "TestScriptTeardownAction";
fn decode(v: &Json, d: &mut Decoder) -> Option<Self> {
let mut o = Obj::new(v, d)?;
let r = TestScriptTeardownAction {
id: o.string(d, "id"),
extension: o.list(d, "extension"),
modifier_extension: o.list(d, "modifierExtension"),
operation: o.one(d, "operation"),
};
required(d, "operation", &r.operation);
o.finish(d);
Some(r)
}
fn encode(&self) -> Json {
let mut w = ObjWriter::new();
w.string("id", &self.id);
w.list("extension", &self.extension);
w.list("modifierExtension", &self.modifier_extension);
w.one("operation", &self.operation);
w.finish()
}
}