1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
use serde::{Deserialize, Serialize};

use crate::resources::label_def::{LabelDef, NewLabelDef};

#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq, Hash)]
pub struct Name(pub String);

use once_cell::sync::Lazy;

pub static DEFAULT_LABEL_GROUP_NAME: Lazy<Name> = Lazy::new(|| Name("default".to_owned()));

#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq)]
pub struct LabelGroup {
    pub name: Name,

    #[serde(default)]
    pub label_defs: Vec<LabelDef>,
}

#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq)]
pub struct NewLabelGroup {
    pub name: Name,

    #[serde(default)]
    pub label_defs: Vec<NewLabelDef>,
}