Skip to main content

par_term_config/config/config_struct/
shader_watch_config.rs

1//! Shader hot-reload settings.
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/// Automatic reloading of background and cursor shader files on change.
10#[derive(Debug, Clone, Serialize, Deserialize)]
11pub struct ShaderWatchConfig {
12    /// Enable automatic shader reloading when shader files are modified
13    /// This watches custom_shader and cursor_shader files for changes
14    #[serde(default = "crate::defaults::bool_false")]
15    pub shader_hot_reload: bool,
16
17    /// Debounce delay in milliseconds before reloading shader after file change
18    /// Helps avoid multiple reloads during rapid saves from editors
19    #[serde(default = "crate::defaults::shader_hot_reload_delay")]
20    pub shader_hot_reload_delay: u64,
21}
22
23impl Default for ShaderWatchConfig {
24    fn default() -> Self {
25        Self {
26            shader_hot_reload: crate::defaults::bool_false(),
27            shader_hot_reload_delay: crate::defaults::shader_hot_reload_delay(),
28        }
29    }
30}