diff options
Diffstat (limited to 'city/util.lua')
-rw-r--r-- | city/util.lua | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/city/util.lua b/city/util.lua new file mode 100644 index 0000000..49ead55 --- /dev/null +++ b/city/util.lua @@ -0,0 +1,37 @@ +local util = {} + +util.table_str = function(tbl, recursive, indent) + local tab = '\t' + + local recursive = recursive or false + local indent = indent or '' + + local str = '{' + + for key, value in pairs(tbl) do + local key_str, value_str + if type(key) == 'table' and recursive then + key_str = util.table_str(key, recursive, indent..tab) + else + key_str = tostring(key) + end + + if type(value) == 'table' and recursive then + value_str = util.table_str(value, recursive, indent..tab) + else + value_str = tostring(value) + end + + str = str .. string.format( + '\n%s%s = %s', indent..tab, + key_str, value_str) + end + + if string.len(str) > 1 then + str = str .. '\n' .. indent + end + str = str .. '}' + return str +end + +return util |