openjd_model/template/
environment.rs1use super::actions::EnvironmentActions;
8use super::constrained_strings::Description;
9use crate::format_string::FormatString;
10use crate::types::{EndOfLine, FileType};
11use serde::Deserialize;
12use std::collections::HashMap;
13
14#[derive(Debug, Clone, Deserialize)]
16#[serde(rename_all = "camelCase", deny_unknown_fields)]
17pub struct Environment {
18 pub name: String,
19 pub description: Option<Description>,
20 pub script: Option<EnvironmentScript>,
21 pub variables: Option<HashMap<String, FormatString>>,
22}
23
24#[derive(Debug, Clone, Deserialize)]
26#[serde(rename_all = "camelCase", deny_unknown_fields)]
27pub struct EnvironmentScript {
28 #[serde(rename = "let")]
29 pub let_bindings: Option<Vec<String>>,
30 pub actions: EnvironmentActions,
31 pub embedded_files: Option<Vec<EmbeddedFile>>,
32}
33
34#[derive(Debug, Clone, Deserialize)]
36#[serde(rename_all = "camelCase", deny_unknown_fields)]
37pub struct EmbeddedFile {
38 pub name: String,
39 #[serde(rename = "type")]
40 pub file_type: FileType,
41 pub filename: Option<FormatString>,
42 pub data: Option<FormatString>,
43 pub runnable: Option<bool>,
44 #[serde(rename = "endOfLine")]
45 pub end_of_line: Option<EndOfLine>,
46}