aproxy/util.lua

52 lines
1.2 KiB
Lua
Raw Normal View History

2022-12-07 18:26:11 +00:00
function table.len(t)
local count = 0
for _ in pairs(t) do count = count + 1 end
return count
end
2023-10-27 01:19:08 +00:00
function table.pprint(t, options_in, ident_in, total_count_in)
local ident = ident_in or 0
local total_count = total_count_in or 0
2023-10-27 01:19:08 +00:00
local options = options_in or {}
local print_function = options.call or print
2022-12-07 18:26:11 +00:00
if type(t) == 'table' then
local count = 0
for k, v in pairs(t) do
print_function(string.rep('\t', ident) .. k)
2022-12-07 18:26:11 +00:00
count = count + 1
total_count = table.pprint(v, options, ident + 1, total_count)
2022-12-07 18:26:11 +00:00
end
if count == 0 then
2023-10-27 01:19:08 +00:00
print_function('{}')
2022-12-07 18:26:11 +00:00
end
else
print_function(string.rep('\t', ident) .. tostring(t))
2022-12-07 18:26:11 +00:00
total_count = total_count + 1
end
return total_count
end
2023-10-27 01:19:08 +00:00
function table.readonly(t)
return setmetatable({}, {
__index = t,
__newindex = function ()
error("Attempt to modify read-only table")
end,
__metatable = false
});
end
function string.split(inputstr, sep)
if sep == nil then
sep = "%s"
end
local t={}
for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
table.insert(t, str)
end
return t
end