aboutsummaryrefslogtreecommitdiffstats
path: root/lua/mason-core/functional/relation.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/mason-core/functional/relation.lua')
-rw-r--r--lua/mason-core/functional/relation.lua21
1 files changed, 21 insertions, 0 deletions
diff --git a/lua/mason-core/functional/relation.lua b/lua/mason-core/functional/relation.lua
index 94913a13..b6ba92b7 100644
--- a/lua/mason-core/functional/relation.lua
+++ b/lua/mason-core/functional/relation.lua
@@ -14,4 +14,25 @@ _.prop_satisfies = fun.curryN(function(predicate, property, tbl)
return predicate(tbl[property])
end, 3)
+---@param predicate fun(value: any): boolean
+---@param path any[]
+---@param tbl table
+_.path_satisfies = fun.curryN(function(predicate, path, tbl)
+ return predicate(vim.tbl_get(tbl, unpack(path)))
+end, 3)
+
+---@param a number
+---@param b number
+---@return number
+_.min = fun.curryN(function(a, b)
+ return b - a
+end, 2)
+
+---@param a number
+---@param b number
+---@return number
+_.add = fun.curryN(function(a, b)
+ return b + a
+end, 2)
+
return _