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}