Build/Utilities/merge.lua

44 lines
980 B
Lua
Raw Normal View History

-- Copies [key, values] from src into dest, if they do not exist
function auMergeTable(dest, src)
auForEachKV(src, function(key, value)
if (dest[key]) then return end
dest[key] = value
end)
return dest
end
2021-11-21 17:23:31 +00:00
function auCopyTables(...)
local dest = {}
local args = table.pack(...)
for i=1, args.n do
local tbl = args[i]
if (tbl) then
auForEachKV(tbl, function(key, value) dest[key] = value end)
end
2021-11-21 17:23:31 +00:00
end
return dest
end
-- Alternative to auConcatArrays
-- Copies src into dest
function auMergeArray(dest, src)
auForEach(src, function(value)
table.insert(dest, value)
end)
return dest
end
function table.copy(t)
local u = { }
for k, v in pairs(t) do u[k] = v end
--setmetatable(u, getmetatable(t))
return u
end
function auMap(array, func)
local tbl = {}
auForEach(array, function(value)
table.insert(tbl, func(value))
end)
return tbl
end