function table.len(t) local count = 0 for _ in pairs(t) do count = count + 1 end return count end function table.pprint(t, options, ident, total_count) local ident = ident or 0 local total_count = total_count or 0 local options = options or {} local print_function = options.call or print if type(t) == 'table' then local count = 0 for k, v in pairs(t) do print_function(string.rep('\t', ident) .. k) count = count + 1 total_count = table.pprint(v, options, ident + 1, total_count) end if count == 0 then --print('') end else print_function(string.rep('\t', ident) .. tostring(t)) total_count = total_count + 1 end return total_count end