1#[derive(serde::Deserialize)]
2pub struct RootWorkspaceConfig {
3 pub name: Option<String>,
4 pub clean_dirs: Vec<String>,
5 pub prefered_config_file_type: String,
6}
7
8#[derive(serde::Deserialize)]
9pub struct JavaScriptConfig {
10 pub workspace: Vec<String>,
11 pub package_manager: String,
12}
13
14#[derive(serde::Deserialize)]
15pub struct RustConfig {
16 pub workspace: Vec<String>,
17}
18
19#[derive(serde::Deserialize)]
20pub struct DockerComposeProfile {
21 pub name: String,
22 pub file: String,
23}
24
25#[derive(serde::Deserialize)]
26pub struct DockerComposeConfig {
27 pub profiles: Vec<DockerComposeProfile>,
28}
29
30#[derive(serde::Deserialize)]
31pub struct DockerConfig {
32 pub compose: DockerComposeConfig,
33}
34
35#[derive(serde::Deserialize)]
36pub struct EnvTemplate {
37 pub file: String,
38 pub dest: String,
39}
40
41#[derive(serde::Deserialize)]
42pub struct EnvConfig {
43 pub delegate: bool,
44 pub templates: Vec<EnvTemplate>,
45}
46
47#[derive(serde::Deserialize)]
48pub struct Config {
49 pub workspace: Option<RootWorkspaceConfig>,
50 pub javascript: Option<JavaScriptConfig>,
51 pub rust: Option<RustConfig>,
52 pub docker: Option<DockerConfig>,
53 pub env: Option<EnvConfig>,
54}