shrub_rs/models/
variant.rs1use crate::models::task::{TaskDependency, TaskRef};
2use serde::{Deserialize, Serialize};
3use std::collections::BTreeMap;
4
5#[derive(Serialize, Deserialize, Debug, Clone)]
6pub struct DisplayTask {
7 pub name: String,
8 pub execution_tasks: Vec<String>,
9}
10
11#[derive(Serialize, Deserialize, Debug, Clone)]
13pub struct BuildVariant {
14 pub name: String,
16
17 pub tasks: Vec<TaskRef>,
19
20 #[serde(skip_serializing_if = "Option::is_none")]
22 pub display_name: Option<String>,
23
24 #[serde(skip_serializing_if = "Option::is_none")]
26 pub run_on: Option<Vec<String>>,
27
28 #[serde(skip_serializing_if = "Option::is_none")]
30 pub display_tasks: Option<Vec<DisplayTask>>,
31
32 #[serde(skip_serializing_if = "Option::is_none")]
34 pub batchtime: Option<u64>,
35
36 #[serde(skip_serializing_if = "Option::is_none")]
38 pub expansions: Option<BTreeMap<String, String>>,
39
40 #[serde(skip_serializing_if = "Option::is_none")]
42 pub stepback: Option<bool>,
43
44 #[serde(skip_serializing_if = "Option::is_none")]
46 pub modules: Option<Vec<String>>,
47
48 #[serde(skip_serializing_if = "Option::is_none")]
50 pub depends_on: Option<Vec<TaskDependency>>,
51
52 #[serde(skip_serializing_if = "Option::is_none")]
54 pub activate: Option<bool>,
55}
56
57impl Default for BuildVariant {
58 fn default() -> Self {
59 BuildVariant {
60 name: "".to_string(),
61 tasks: vec![],
62 display_name: None,
63 run_on: None,
64 display_tasks: None,
65 batchtime: None,
66 expansions: None,
67 stepback: None,
68 modules: None,
69 depends_on: None,
70 activate: None,
71 }
72 }
73}