-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathstringify.lua
46 lines (46 loc) · 1.19 KB
/
stringify.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
stringify = setmetatable({
tryParse = function(v, env, fallback)
return __util.lazy('lib_stringify').tryParse(v, env, fallback)
end,
parse = function (v, env)
return __util.lazy('lib_stringify').parse(v, env)
end,
register = function(n, v)
return __util.lazy('lib_stringify').register(n, v)
end,
locals = function ()
local variables = {}
local idx = 1
while debug do
local ln, lv = debug.getlocal(2, idx)
if ln ~= nil then
variables[ln] = lv
else
break
end
idx = 1 + idx
end
return variables
end,
substep = function (out, ptr, obj, lineBreak, depthLimit)
return __util.lazy('lib_stringify').substep(out, ptr, obj, lineBreak, depthLimit)
end,
binary = setmetatable({
tryParse = function (v, fallback)
local r, p = pcall(__util.prs().unpackString, v)
if r then return p end
return fallback
end,
parse = function (v)
return __util.prs().unpackString(v)
end,
}, {
__call = function(_, data)
return __util.prs().packString(data)
end
})
}, {
__call = function(_, v, compact, depthLimit)
return __util.lazy('lib_stringify').call(v, compact, depthLimit)
end
})