From: Vsevolod Stakhov Date: Tue, 23 Jul 2019 16:51:00 +0000 (+0100) Subject: [Minor] Lua_util: Add `flatten` function X-Git-Tag: 2.0~507 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=01329335b7941502da10c71ead38b9c334804c84;p=thirdparty%2Frspamd.git [Minor] Lua_util: Add `flatten` function --- diff --git a/lualib/lua_util.lua b/lualib/lua_util.lua index 432f55c6aa..b8420c7a4f 100644 --- a/lualib/lua_util.lua +++ b/lualib/lua_util.lua @@ -284,6 +284,23 @@ exports.unpack = function(t) return unpack_function(t) end +--[[[ +-- @function lua_util.flatten(table) +-- Flatten underlying tables in a single table +-- @param {table} table table of tables +-- @return {table} flattened table +--]] +exports.flatten = function(t) + local res = {} + for _,e in fun.iter(t) do + for _,v in fun.iter(e) do + res[#res + 1] = v + end + end + + return res +end + --[[[ -- @function lua_util.spairs(table) -- Like `pairs` but keys are sorted lexicographically