sokol-luajit/engine/utils/general.lua
2025-10-19 10:46:23 +10:30

41 lines
1.1 KiB
Lua

-- --------------------------------------------------------------------------------------
local visited = {}
local function tdump(o, level)
local level = level or 1
if(level == 0) then visited = {} end
if type(o) == 'table' then
local s = ' {\n'
for k,v in pairs(o) do
if type(k) ~= 'number' then k = '"'..tostring(k)..'"' end
if(visited[v] == nil) then
visited[v] = true
s = s .. string.rep(" ", level)..'['..k..'] = ' .. tdump(v, level+1)
end
end
return s .. string.rep(" ", level-1)..'}\n'
else
return tostring(o).."\n"
end
end
-- --------------------------------------------------------------------------------------
local function ffi_string( data, str )
data.value = str
data.ffi = ffi.new("char[?]", #str, str)
data.len_ffi = ffi.new("int[1]", { #str} )
return data
end
-- --------------------------------------------------------------------------------------
return {
tdump = tdump,
ffi_string = ffi_string,
}
-- --------------------------------------------------------------------------------------