68 lines
1.6 KiB
Lua
68 lines
1.6 KiB
Lua
local table_merge = require("kong.tools.table").table_merge
|
|
|
|
--- Utilities for Lua tables.
|
|
--
|
|
-- @module kong.table
|
|
|
|
|
|
---
|
|
-- Returns a table with a pre-allocated number of slots in its array and hash
|
|
-- parts.
|
|
--
|
|
-- @function kong.table.new
|
|
-- @tparam[opt] number narr Specifies the number of slots to pre-allocate
|
|
-- in the array part.
|
|
-- @tparam[opt] number nrec Specifies the number of slots to pre-allocate in
|
|
-- the hash part.
|
|
-- @treturn table The newly created table.
|
|
-- @usage
|
|
-- local tab = kong.table.new(4, 4)
|
|
local new_tab = require "table.new"
|
|
|
|
---
|
|
-- Clears all array and hash parts entries from a table.
|
|
--
|
|
-- @function kong.table.clear
|
|
-- @tparam table tab The table to be cleared.
|
|
-- @return Nothing.
|
|
-- @usage
|
|
-- local tab = {
|
|
-- "hello",
|
|
-- foo = "bar"
|
|
-- }
|
|
--
|
|
-- kong.table.clear(tab)
|
|
--
|
|
-- kong.log(tab[1]) -- nil
|
|
-- kong.log(tab.foo) -- nil
|
|
local clear_tab = require "table.clear"
|
|
|
|
|
|
--- Merges the contents of two tables together, producing a new one.
|
|
-- The entries of both tables are copied non-recursively to the new one.
|
|
-- If both tables have the same key, the second one takes precedence.
|
|
-- If only one table is given, it returns a copy.
|
|
-- @function kong.table.merge
|
|
-- @tparam[opt] table t1 The first table.
|
|
-- @tparam[opt] table t2 The second table.
|
|
-- @treturn table The (new) merged table.
|
|
-- @usage
|
|
-- local t1 = {1, 2, 3, foo = "f"}
|
|
-- local t2 = {4, 5, bar = "b"}
|
|
-- local t3 = kong.table.merge(t1, t2) -- {4, 5, 3, foo = "f", bar = "b"}
|
|
local merge_tab = table_merge
|
|
|
|
|
|
local function new(self)
|
|
return {
|
|
new = new_tab,
|
|
clear = clear_tab,
|
|
merge = merge_tab,
|
|
}
|
|
end
|
|
|
|
|
|
return {
|
|
new = new,
|
|
}
|