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}