Skip to main content

par_term_config/config/config_struct/
automation_config.rs

1//! Trigger, coprocess and observer-script definitions.
2//!
3//! Extracted from the top-level [`super::Config`] struct via `#[serde(flatten)]`.
4//! All fields serialise at the top level of the YAML config file -- existing
5//! config files remain 100% compatible.
6
7use serde::{Deserialize, Serialize};
8
9/// Regex triggers, coprocess definitions and external observer scripts.
10#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11pub struct AutomationConfig {
12    /// Regex trigger definitions that match terminal output and fire actions
13    #[serde(default)]
14    pub triggers: Vec<crate::automation::TriggerConfig>,
15
16    /// Coprocess definitions for piped subprocess management
17    #[serde(default)]
18    pub coprocesses: Vec<crate::automation::CoprocessDefConfig>,
19
20    /// External observer script definitions
21    #[serde(default)]
22    pub scripts: Vec<crate::scripting::ScriptConfig>,
23}