cuddle-v2/cuddle_cli/src/model.rs

49 lines
1.2 KiB
Rust
Raw Normal View History

2022-08-10 12:34:04 +02:00
use std::collections::HashMap;
use serde::Deserialize;
#[derive(Debug, Clone, PartialEq, Deserialize)]
#[serde(untagged)]
pub enum CuddleBase {
Bool(bool),
String(String),
}
2022-08-12 00:54:22 +02:00
#[derive(Debug, Clone, PartialEq, Deserialize)]
pub struct CuddleShellScriptArgEnv {
pub key: String,
}
#[derive(Debug, Clone, PartialEq, Deserialize)]
#[serde(tag = "type")]
pub enum CuddleShellScriptArg {
#[serde(alias = "env")]
Env(CuddleShellScriptArgEnv),
}
2022-08-10 12:34:04 +02:00
#[derive(Debug, Clone, PartialEq, Deserialize)]
pub struct CuddleShellScript {
pub description: Option<String>,
2022-08-12 00:54:22 +02:00
pub args: Option<HashMap<String, CuddleShellScriptArg>>,
2022-08-10 12:34:04 +02:00
}
#[derive(Debug, Clone, PartialEq, Deserialize)]
pub struct CuddleDaggerScript {
pub description: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize)]
#[serde(tag = "type")]
pub enum CuddleScript {
#[serde(alias = "shell")]
Shell(CuddleShellScript),
#[serde(alias = "dagger")]
Dagger(CuddleDaggerScript),
}
#[derive(Debug, Clone, PartialEq, Deserialize)]
pub struct CuddlePlan {
pub base: CuddleBase,
2022-08-11 02:03:19 +02:00
pub vars: Option<HashMap<String, String>>,
2022-08-10 12:34:04 +02:00
pub scripts: Option<HashMap<String, CuddleScript>>,
}