-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathextras.lua
34 lines (27 loc) · 864 Bytes
/
extras.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
local M
-- convert table to text
function M.serializeTable(val, name, skipnewlines, depth)
skipnewlines = skipnewlines or false
depth = depth or 0
local tmp = string.rep(' ', depth)
if name then
tmp = tmp .. name .. ' = '
end
if type(val) == 'table' then
tmp = tmp .. '{' .. (not skipnewlines and '\n' or '')
for k, v in pairs(val) do
tmp = tmp .. serializeTable(v, k, skipnewlines, depth + 1) .. ',' .. (not skipnewlines and '\n' or '')
end
tmp = tmp .. string.rep(' ', depth) .. '}'
elseif type(val) == 'number' then
tmp = tmp .. tostring(val)
elseif type(val) == 'string' then
tmp = tmp .. string.format('%q', val)
elseif type(val) == 'boolean' then
tmp = tmp .. (val and 'true' or 'false')
else
tmp = tmp .. '"[inserializeable datatype:' .. type(val) .. ']"'
end
return tmp
end
return M