42 lines
1.1 KiB
Lua
42 lines
1.1 KiB
Lua
local M = {}
|
|
|
|
---------------------------------------------
|
|
-- Intelligent table printing function
|
|
---------------------------------------------
|
|
-- From http://coronalabs.com/blog/2014/09/02/tutorial-printing-table-contents/
|
|
|
|
function M.print_r ( t )
|
|
local print_r_cache = {}
|
|
local function sub_print_r(t, indent)
|
|
if (print_r_cache[tostring(t)]) then
|
|
print(indent.."*"..tostring(t))
|
|
else
|
|
print_r_cache[tostring(t)] = true
|
|
if (type(t) == "table") then
|
|
for pos, val in pairs(t) do
|
|
if (type(val) == "table") then
|
|
print(indent.."["..pos.."] => "..tostring(t).." {")
|
|
sub_print_r(val, indent..string.rep(" ", string.len(pos) + 8))
|
|
print(indent..string.rep(" ", string.len(pos) + 6).."}")
|
|
elseif (type(val) == "string") then
|
|
print(indent.."["..pos..'] => "'..val..'"')
|
|
else
|
|
print(indent.."["..pos.."] => "..tostring(val))
|
|
end
|
|
end
|
|
else
|
|
print(indent..tostring(t))
|
|
end
|
|
end
|
|
end
|
|
if (type(t) == "table") then
|
|
print(tostring(t).." {")
|
|
sub_print_r(t, " ")
|
|
print("}")
|
|
else
|
|
sub_print_r(t, " ")
|
|
end
|
|
print()
|
|
end
|
|
|
|
return M;
|