local function inspect_userdata(obj, depth)
depth = depth or 0
local indent = string.rep(" ", depth)
if type(obj) == "userdata" then
print(indent .. "userdata:")
local mt = getmetatable(obj)
if mt then
print(indent .. " metatable:")
for k, v in pairs(mt) do
print(indent .. " " .. tostring(k) .. ": " .. tostring(v))
end
end
elseif type(obj) == "table" then
print(indent .. "table:")
for k, v in pairs(obj) do
print(indent .. " " .. tostring(k) .. ":")
inspect_userdata(v, depth + 2)
end
else
print(indent .. tostring(obj) .. " (" .. type(obj) .. ")")
end
end