summaryrefslogtreecommitdiff
path: root/.config/nvim/lua/utils/table.lua
diff options
context:
space:
mode:
authorGustaf Rydholm <gustaf.rydholm@gmail.com>2021-10-11 22:03:16 +0200
committerGustaf Rydholm <gustaf.rydholm@gmail.com>2021-10-11 22:03:16 +0200
commitdf66b461596d351367f90d41a0fabffb873de4be (patch)
tree711b15790bb97ba0bfa57e1e863fe9a521d55bec /.config/nvim/lua/utils/table.lua
parent611b15e94dadc7351d5ff67f268791d5269ea112 (diff)
Merge updates from lunarvim
Diffstat (limited to '.config/nvim/lua/utils/table.lua')
-rw-r--r--.config/nvim/lua/utils/table.lua24
1 files changed, 24 insertions, 0 deletions
diff --git a/.config/nvim/lua/utils/table.lua b/.config/nvim/lua/utils/table.lua
new file mode 100644
index 0000000..1ac5949
--- /dev/null
+++ b/.config/nvim/lua/utils/table.lua
@@ -0,0 +1,24 @@
+local Table = {}
+
+--- Find the first entry for which the predicate returns true.
+-- @param t The table
+-- @param predicate The function called for each entry of t
+-- @return The entry for which the predicate returned True or nil
+function Table.find_first(t, predicate)
+ for _, entry in pairs(t) do
+ if predicate(entry) then
+ return entry
+ end
+ end
+ return nil
+end
+
+--- Check if the predicate returns True for at least one entry of the table.
+-- @param t The table
+-- @param predicate The function called for each entry of t
+-- @return True if predicate returned True at least once, false otherwise
+function Table.contains(t, predicate)
+ return Table.find_first(t, predicate) ~= nil
+end
+
+return Table