aboutsummaryrefslogtreecommitdiff
path: root/.config/awesome/quarrel/delegate.lua
diff options
context:
space:
mode:
authordelta <darkussdelta@gmail.com>2024-03-05 14:48:59 +0100
committerdelta <darkussdelta@gmail.com>2024-03-05 14:48:59 +0100
commit510ef8e178929cf5e0c7fd5a5120fecf5f1b79f2 (patch)
tree3582e5cd7d000335ca94f2a009f3aed57bd86919 /.config/awesome/quarrel/delegate.lua
parent95ba8030f722a616cff06c122dcfb2f63e25cf45 (diff)
idk anymore
Diffstat (limited to '.config/awesome/quarrel/delegate.lua')
-rw-r--r--.config/awesome/quarrel/delegate.lua14
1 files changed, 14 insertions, 0 deletions
diff --git a/.config/awesome/quarrel/delegate.lua b/.config/awesome/quarrel/delegate.lua
new file mode 100644
index 0000000..54db786
--- /dev/null
+++ b/.config/awesome/quarrel/delegate.lua
@@ -0,0 +1,14 @@
+--- Capture `fn`'s upvalues and pass to `delegate`
+---@param delegate fun(env: table<string, any>, _: ...): ...
+---@param fn function
+---@return fun(...): ...
+return function(delegate, fn)
+ local upvalues = {}
+ for i = 1, debug.getinfo(fn, "u").nups do
+ local name, value = debug.getupvalue(fn, i)
+ upvalues[name] = value
+ end
+ return function(...)
+ return delegate(upvalues, ...)
+ end
+end