srdusr
aboutsummaryrefslogtreecommitdiffstats
path: root/crates/config/src/engine/theme.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/config/src/engine/theme.rs')
-rw-r--r--crates/config/src/engine/theme.rs16
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(())
+ })?)
+ }
+}