diff options
Diffstat (limited to 'crates/config/src/engine/theme.rs')
| -rw-r--r-- | crates/config/src/engine/theme.rs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/crates/config/src/engine/theme.rs b/crates/config/src/engine/theme.rs new file mode 100644 index 0000000..b178b10 --- /dev/null +++ b/crates/config/src/engine/theme.rs @@ -0,0 +1,16 @@ +use super::*; +use super::support::flatten_table_into; + +impl Engine { + // ---- srd.theme.* ------------------------------------------------------- + + pub(super) fn fn_theme_set(&self, prefix: &str) -> Result<mlua::Function<'_>> { + let state = self.state.clone(); + let prefix = prefix.to_string(); + Ok(self.lua.create_function(move |_, table: Table| { + let mut s = state.borrow_mut(); + flatten_table_into(&prefix, &table, &mut s.values)?; + Ok(()) + })?) + } +} |