diff --git a/src/config.rs b/src/config.rs index 99dd349..f7a230f 100644 --- a/src/config.rs +++ b/src/config.rs @@ -144,6 +144,20 @@ pub fn get_config() -> &'static AppConfig { }) } +/// Modifiziert die aktuelle Konfiguration mit der übergebenen Mutator-Funktion. +/// +/// Die Funktion lädt die Konfiguration neu von der Festplatte, wendet die Mutator-Funktion an +/// und speichert die geänderte Konfiguration anschließend wieder. +pub fn modify_config(mutator: F) +where + F: FnOnce(&mut AppConfig), +{ + // Immer frisch von Disk laden, damit Änderungen konsistent sind + let mut cfg = load_config(); + mutator(&mut cfg); + save_config(cfg); +} + /// Lädt die Konfiguration aus der Konfigurationsdatei. fn load_config() -> AppConfig { #[cfg(target_os = "linux")]