use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct HabitatRecord {
#[serde(default)]
pub hid: String,
#[serde(default)]
pub name: Option<String>,
#[serde(default)]
pub domain: Option<String>,
#[serde(default)]
pub mid: Option<String>,
#[serde(default)]
pub smids: Option<Vec<String>>,
#[serde(default)]
pub rmids: Option<Vec<String>>,
#[serde(default)]
pub sid: Option<String>,
#[serde(default)]
pub watchers: Vec<String>,
}
impl Default for HabitatRecord {
fn default() -> Self {
HabitatRecord {
hid: "".to_string(),
name: None,
domain: None,
mid: None,
smids: None,
rmids: None,
sid: None,
watchers: Vec::new(),
}
}
}
impl HabitatRecord {
pub fn new(hid: String) -> Self {
HabitatRecord {
hid,
..Default::default()
}
}
pub fn new_with_watchers(hid: String, watchers: Vec<String>) -> Self {
HabitatRecord {
hid,
watchers,
..Default::default()
}
}
}