79204246

Date: 2024-11-19 16:24:54
Score: 0.5
Natty:
Report link
function getName(name)
  if type(name) ~= "string" then
    return ""
  elseif string.match(name, '^[a-zA-z_][a-zA-Z0-9_]*$') then
    return name .. " = "
  end
    return "['".. string.gsub(name, "'", "\\'") .. "'] = "
end

function serialize(val, name, depth)
  depth = depth or ""
  local prefix = depth .. getName(name)

  if type(val) == "number" then
    return prefix .. tostring(val)
  elseif type(val) == "string" then
    return prefix .. string.format("%q", val)
  elseif type(val) == "boolean" then
    return prefix .. (val and "true" or "false")
  elseif type(val) == "nil" then
    return prefix .. "nil"
  elseif type(val) == "table" then
    local tmp = prefix .. "{\n"
    for k, v in pairs(val) do
      tmp =  tmp .. depth .. serialize(v, k, depth .. " ") .. ",\n"
    end
    return tmp .. depth .. "}"
  end
  return depth .. "\"[inserializeable datatype:" .. type(val) .. "]\""
end
Reasons:
  • Long answer (-0.5):
  • Has code block (-0.5):
  • Unregistered user (0.5):
  • Low reputation (1):
Posted by: Andrew