aboutsummaryrefslogtreecommitdiffstats
path: root/util/serialization.lua
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2020-09-26 23:17:53 +0200
committerKim Alvefur <zash@zash.se>2020-09-26 23:17:53 +0200
commit487f96c2f1700d17e5ed7623183a26a5345a3537 (patch)
treeb0a8aebc274f33088b57289dcd318f2c841bfe28 /util/serialization.lua
parenta51d5912465d8129ab062572d1f2e2bdddf967e6 (diff)
downloadprosody-487f96c2f1700d17e5ed7623183a26a5345a3537.tar.gz
prosody-487f96c2f1700d17e5ed7623183a26a5345a3537.zip
util.serialization: Let freeze metamethod return a literal string
Enables custom serialization, such as creating a datatype that serializes into a variable reference.
Diffstat (limited to 'util/serialization.lua')
-rw-r--r--util/serialization.lua4
1 files changed, 4 insertions, 0 deletions
diff --git a/util/serialization.lua b/util/serialization.lua
index d70e92ba..d310a3e8 100644
--- a/util/serialization.lua
+++ b/util/serialization.lua
@@ -150,6 +150,10 @@ local function new(opt)
if type(fr) == "function" then
t = fr(t);
+ if type(t) == "string" then
+ o[l], l = t, l + 1;
+ return l;
+ end
if type(tag) == "string" then
o[l], l = tag, l + 1;
end