use crate::r5::parse::profiles_resources::*;
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 RestResource {
pub r#type: String,
pub profile: String,
pub interaction: Vec<Interaction>,
pub conditional_create: bool,
pub conditional_update: bool,
pub conditional_delete: String,
pub reference_policy: Vec<String>,
pub search_include: Option<Vec<String>>,
pub search_rev_include: Option<Vec<String>>,
pub search_param: Option<Vec<RestSearchParam>>,
}
#[cfg(test)]
mod tests {
use super::*;
type T = RestResource;
#[test]
fn test_serde_json_from_reader() {
let path = crate::r5::parse::profiles_resources::DIR
.join("rest_resource")
.join("rest_resource.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());
}
}