aboutsummaryrefslogtreecommitdiff
path: root/.config/awesome/quarrel/delegate.lua
diff options
context:
space:
mode:
authordelta <darkussdelta@gmail.com>2025-07-04 00:38:29 +0200
committerdelta <darkussdelta@gmail.com>2025-07-04 00:38:29 +0200
commitb3530d7c4a102935fa26498a160ee1dc6c1e9c03 (patch)
treed7751206a694bc5de2d6b34b0c077cfcd1855798 /.config/awesome/quarrel/delegate.lua
parentdf75ec5ed5e3848c497f0439acb43ec9246ad3e7 (diff)
:3
Diffstat (limited to '.config/awesome/quarrel/delegate.lua')
-rw-r--r--.config/awesome/quarrel/delegate.lua10
1 files changed, 9 insertions, 1 deletions
diff --git a/.config/awesome/quarrel/delegate.lua b/.config/awesome/quarrel/delegate.lua
index 54db786..3ea6d75 100644
--- a/.config/awesome/quarrel/delegate.lua
+++ b/.config/awesome/quarrel/delegate.lua
@@ -1,8 +1,10 @@
+local M = {}
+
--- Capture `fn`'s upvalues and pass to `delegate`
---@param delegate fun(env: table<string, any>, _: ...): ...
---@param fn function
---@return fun(...): ...
-return function(delegate, fn)
+function M.new(delegate, fn)
local upvalues = {}
for i = 1, debug.getinfo(fn, "u").nups do
local name, value = debug.getupvalue(fn, i)
@@ -12,3 +14,9 @@ return function(delegate, fn)
return delegate(upvalues, ...)
end
end
+
+return setmetatable(M, {
+ __call = function(_, ...)
+ return M.new(...)
+ end,
+})