#![forbid(unsafe_code)]
use serde_er7::Message;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let json = r#"
{
"separators": {
"field": "|", "component": "^", "repetition": "~",
"escape": "\\", "subcomponent": "&", "truncation": null
},
"segments": [
{
"name": "MSH",
"fields": [
[[["|"]]],
[[["^~\\&"]]],
[[["LAB"]]],
[[["ACME"]]],
[],
[],
[[["20260815090000"]]],
[],
[[["ADT"], ["A08"], ["ADT_A01"]]],
[[["MSG00001"]]],
[[["P"]]],
[[["2.5"]]]
]
},
{
"name": "PID",
"fields": [
[[["1"]]],
[],
[[["555-44-4444"]]],
[],
[[["SMITH"], ["JOHN"]]]
]
}
]
}"#;
let message: Message = serde_json::from_str(json)?;
assert_eq!(message.query("PID-5.1")?.as_deref(), Some("SMITH"));
assert_eq!(message.control_id().as_deref(), Some("MSG00001"));
println!("{}", message.to_er7());
Ok(())
}