Browse Source

[Minor] Add universal keys and values functions

tags/2.0
Vsevolod Stakhov 4 years ago
parent
commit
65e9bfb52e
1 changed files with 50 additions and 0 deletions
  1. 50
    0
      lualib/lua_util.lua

+ 50
- 0
lualib/lua_util.lua View File

@@ -994,4 +994,54 @@ exports.callback_from_string = function(str)
return res_or_err
end

---[[[
-- @function lua_util.keys(t)
-- Returns all keys from a specific table
-- @param {table} t input table (or iterator triplet)
-- @return array of keys
--]]]
exports.keys = function(gen, param, state)
local keys = {}
local i = 1

if param then
for k,_ in fun.iter(gen, param, state) do
rawset(keys, i, k)
i = i + 1
end
else
for k,_ in pairs(gen) do
rawset(keys, i, k)
i = i + 1
end
end

return keys
end

---[[[
-- @function lua_util.values(t)
-- Returns all values from a specific table
-- @param {table} t input table
-- @return array of values
--]]]
exports.values = function(gen, param, state)
local values = {}
local i = 1

if param then
for _,v in fun.iter(gen, param, state) do
rawset(values, i, v)
i = i + 1
end
else
for _,v in pairs(gen) do
rawset(values, i, v)
i = i + 1
end
end

return values
end

return exports

Loading…
Cancel
Save