1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
use std::collections::HashSet;
use crate::is_default;
#[derive(Debug, Clone, Serialize, Deserialize, Default, PartialEq, Eq)]
pub struct TargetState {
#[serde(skip_serializing_if = "is_default")]
#[serde(default)]
pub add: Option<Vec<String>>,
#[serde(skip_serializing_if = "is_default")]
#[serde(default)]
pub remove: Option<Vec<String>>,
#[serde(skip_serializing_if = "is_default")]
#[serde(default)]
pub need_all: HashSet<String>,
#[serde(skip_serializing_if = "is_default")]
#[serde(default)]
pub need_any: HashSet<String>,
#[serde(skip_serializing_if = "is_default")]
#[serde(default)]
pub need_none: HashSet<String>,
}