Module:utilities
From SUALEX
Documentation for this module may be created at Module:utilities/doc
-- Module:utilities
local utilities = {}
function utilities.split_string(str, delimiter)
local result = {}
delimiter = delimiter or ""
if delimiter == "" then
for c in str:gmatch(".") do table.insert(result, c) end
return result
end
for part in (str .. delimiter):gmatch("(.-)" .. delimiter) do
table.insert(result, part)
end
return result
end
function utilities.join_strings(parts, delimiter)
return table.concat(parts, delimiter)
end
function utilities.table_contains(tbl, value)
for _, v in ipairs(tbl) do
if v == value then return true end
end
return false
end
function utilities.deep_copy(tbl)
local copy = {}
for k, v in pairs(tbl) do
if type(v) == "table" then
copy[k] = utilities.deep_copy(v)
else
copy[k] = v
end
end
return copy
end
function utilities.trim_string(str)
if not str then return str end
return str:match("^%s*(.-)%s*$")
end
function utilities.table_keys_count(tbl)
local count = 0
for _ in pairs(tbl) do count = count + 1 end
return count
end
return utilities