diff options
| author | delta <darkussdelta@gmail.com> | 2025-07-04 00:38:29 +0200 |
|---|---|---|
| committer | delta <darkussdelta@gmail.com> | 2025-07-04 00:38:29 +0200 |
| commit | b3530d7c4a102935fa26498a160ee1dc6c1e9c03 (patch) | |
| tree | d7751206a694bc5de2d6b34b0c077cfcd1855798 /.config/awesome/quarrel/delegate.lua | |
| parent | df75ec5ed5e3848c497f0439acb43ec9246ad3e7 (diff) | |
:3
Diffstat (limited to '.config/awesome/quarrel/delegate.lua')
| -rw-r--r-- | .config/awesome/quarrel/delegate.lua | 10 |
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, +}) |
