use crate::r5::parse::all::*;
use ::serde::{Deserialize, Serialize};
#[serde_with::skip_serializing_none]
#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
#[serde(deny_unknown_fields)]
pub struct Parameter {
pub name: String,
pub r#type: Option<String>,
pub search_type: Option<String>,
pub r#use: Option<String>,
pub scope: Option<Vec<String>>,
pub min: Option<i64>,
pub max: Option<String>,
pub documentation: Option<String>,
pub binding: Option<Binding>,
pub target_profile: Option<Vec<String>>,
pub part: Option<Vec<Parameter>>,
pub value_string: Option<String>,
pub extension: Option<Vec<Extension>>,
}
#[cfg(test)]
mod tests {
use super::*;
type T = Parameter;
#[test]
fn test_serde_json_from_reader() {
let path = crate::r5::parse::value_sets::DIR
.join("parameter")
.join("parameter.json");
let file = std::fs::File::open(path).expect("open");
let reader = std::io::BufReader::new(file);
let actual: T = ::serde_json::from_reader(reader).unwrap();
assert_ne!(actual, T::default());
}
}