fhirbolt_serde/
lib.rs

1//! (De)serialize FHIR resources from and to JSON and XML.
2
3// This was taken from serde_json to reduce code size by avoiding going
4// through From (as stdlib try! or ? does).
5// This reduces the size of the rlib by a few percent
6macro_rules! tri {
7    ($e:expr $(,)?) => {
8        match $e {
9            core::result::Result::Ok(val) => val,
10            core::result::Result::Err(err) => return core::result::Result::Err(err),
11        }
12    };
13}
14
15pub mod element;
16
17pub mod json;
18pub mod xml;
19
20mod context;
21mod decimal;
22mod model;
23mod utils;
24
25use std::fmt::Debug;
26
27use fhirbolt_shared::FhirRelease;
28
29pub use context::{
30    de::{
31        DeserializationConfig, DeserializationContext, DeserializationMode, DeserializeResource,
32        DeserializeResourceOwned,
33    },
34    ser::{SerializationConfig, SerializationContext, SerializeResource},
35};
36
37/// Marker trait for all types representing FHIR resources.
38pub trait Resource: Sized + Clone + PartialEq + Debug {
39    const FHIR_RELEASE: FhirRelease;
40}