Comparison

util/serialization.lua @ 1107:ebda1845ebc1

util.serialization: Log a warning when trying to serialize something we can't
author Matthew Wild <mwild1@gmail.com>
date Mon, 04 May 2009 19:35:29 +0100
parent 896:2c0b9e3c11c3
child 1128:b2e548344d61
comparison
equal deleted inserted replaced
1106:b51a65066595 1107:ebda1845ebc1
12 local t_insert = table.insert; 12 local t_insert = table.insert;
13 local t_concat = table.concat; 13 local t_concat = table.concat;
14 local error = error; 14 local error = error;
15 local pairs = pairs; 15 local pairs = pairs;
16 16
17 local debug_traceback = debug.traceback;
18 local log = require "util.logger".init("serialization");
17 module "serialization" 19 module "serialization"
18 20
19 local indent = function(i) 21 local indent = function(i)
20 return string_rep("\t", i); 22 return string_rep("\t", i);
21 end 23 end
48 func(t, indent(ind-1)); 50 func(t, indent(ind-1));
49 func(t, "}"); 51 func(t, "}");
50 elseif type(o) == "boolean" then 52 elseif type(o) == "boolean" then
51 func(t, (o and "true" or "false")); 53 func(t, (o and "true" or "false"));
52 else 54 else
53 error("cannot serialize a " .. type(o)) 55 log("warn", "cannot serialize a %s: %s", type(o), debug_traceback())
54 end 56 end
55 end 57 end
56 58
57 function append(t, o) 59 function append(t, o)
58 _simplesave(o, 1, t, t.write or t_insert); 60 _simplesave(o, 1, t, t.write or t_insert);