use crate::lookup_value;
use serde::{Deserialize, Serialize};
use std::borrow::Cow;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
pub struct Test {
#[serde(rename = "tg")]
pub targeted_disease: Cow<'static, str>,
#[serde(rename = "tt")]
pub test_type: Cow<'static, str>,
#[serde(rename = "nm", skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "ma", skip_serializing_if = "Option::is_none")]
pub manufacturer: Option<Cow<'static, str>>,
#[serde(rename = "sc")]
pub date_of_collection: String,
#[serde(rename = "dr", skip_serializing_if = "Option::is_none")]
pub date_of_result: Option<String>,
#[serde(rename = "tr")]
pub result: Cow<'static, str>,
#[serde(rename = "tc", skip_serializing_if = "Option::is_none")]
pub testing_centre: Option<String>,
#[serde(rename = "co")]
pub country: Cow<'static, str>,
#[serde(rename = "is")]
pub issuer: Cow<'static, str>,
#[serde(rename = "ci")]
pub id: String,
}
impl Test {
pub fn expand_values(&mut self) {
self.targeted_disease = lookup_value(&self.targeted_disease);
self.test_type = lookup_value(&self.test_type);
self.result = lookup_value(&self.result);
if let Some(ma) = &mut self.manufacturer {
*ma = lookup_value(ma);
}
self.country = lookup_value(&self.country);
self.issuer = lookup_value(&self.issuer);
}
}