3 function serializer:serialize()
5 for k, v in pairs(self) do
7 local ktype, vtype = type(k), type(v)
8 local serialize_pair = true
9 if ktype == "number" then
10 kdata = "[" .. k .. "]"
11 elseif ktype == "string" then
12 if k:sub(1, 1) == "_" then
13 serialize_pair = false
15 kdata = "[\"" .. k .. "\"]"
18 serialize_pair = false
20 if vtype == "table" then
21 vdata = serializer.serialize(v)
22 elseif vtype == "string" then
23 vdata = "\"" .. v .. "\""
24 elseif vtype == "number" then
26 elseif vtype == "boolean" then
27 vdata = v and "true" or "false"
29 serialize_pair = false
31 if serialize_pair then
32 data = data .. kdata .. "=" .. vdata .. ","
38 function serializer:deserialize(raw)
39 raw = "return" .. (raw or "")
40 local f = loadstring(raw)
41 local data = f and f()
42 if type(data) == "table" then
43 for k, v in pairs(data) do