Files
zesdex/src/app/workflow/script.rs
T

38 lines
859 B
Rust
Raw Normal View History

use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum ScriptPrimitive {
Agent(String),
Parallel(Vec<ScriptPrimitive>),
Pipeline(Vec<ScriptPrimitive>),
Phase {
name: String,
script: Box<ScriptPrimitive>,
},
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ScriptOptions {
pub max_concurrency: usize,
pub continue_on_error: bool,
pub timeout_ms: Option<u64>,
}
impl Default for ScriptOptions {
fn default() -> Self {
ScriptOptions {
max_concurrency: 5,
continue_on_error: false,
timeout_ms: None,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct WorkflowScript {
pub name: String,
pub description: String,
pub script: ScriptPrimitive,
pub options: ScriptOptions,
}