Actions

Module

Module:utilities

From SUALEX

Revision as of 07:23, 29 January 2026 by Jawad (talk | contribs) (Created page with "-- 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(pa...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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