use crate::impl_extra;
use std::collections::HashMap;
use serde::{Deserialize, Serialize};
use serde_json::Value;
#[derive(Serialize, Deserialize, Default, Debug, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct Baseline {
pub report_id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub source: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub timestamp: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub build_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub build_number: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub build_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub commit: Option<String>,
#[serde(default, skip_serializing_if = "HashMap::is_empty")]
extra: HashMap<String, Value>,
}
impl Baseline {
pub fn new(report_id: String) -> Self {
Self {
report_id,
..Default::default()
}
}
}
impl_extra!(Baseline);