feat(util): added LazyVim.memoize

This commit is contained in:
Folke Lemaitre
2024-06-07 22:49:06 +02:00
parent b714f28662
commit 5a11d740e1

View File

@ -268,4 +268,17 @@ for _, level in ipairs({ "info", "warn", "error" }) do
end
end
local cache = {} ---@type table<string, any>
---@generic T: fun()
---@param fn T
---@return T
function M.memoize(fn)
return function(...)
local key = vim.inspect({ ... })
if cache[key] == nil then
cache[key] = fn(...)
end
return cache[key]
end
end
return M