SuperMcBrent

dataLib

Feb 24th, 2023 (edited)
338
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.20 KB | Gaming | 0 0
  1. function Serialize(ctx, data, name)
  2.     print("Serializing data to " .. name)
  3.     if not fs.exists('/data') then
  4.         fs.makeDir('/data')
  5.     end
  6.     local f = fs.open('/data/' .. name, 'w')
  7.     f.write(textutils.serialize(data))
  8.     f.close()
  9. end
  10.  
  11. function Unserialize(ctx, name)
  12.     print("Unserializing data from " .. name)
  13.     local data = nil
  14.     if fs.exists('/data/' .. name) then
  15.         local f = fs.open('/data/' .. name, 'r')
  16.         data = textutils.unserialize(f.readAll())
  17.         f.close()
  18.     end
  19.     return data
  20. end
  21.  
  22. return {
  23.     id = "data",
  24.     name = "Persistence Library",
  25.     alias = "data",
  26.     dependencies = {},
  27.     serialize = function(ctx, data, name)
  28.         return Serialize(ctx, data, name)
  29.     end,
  30.     unserialize = function(ctx, name)
  31.         return Unserialize(ctx, name)
  32.     end
  33. }
  34.  
  35. --[[
  36.     Example usage:
  37.  
  38.     local ok, res = pcall(libs.data.serialize, ctx, { foo = "bar" }, "test")
  39.     if not ok then
  40.         print("serialize error:", res)
  41.     end
  42.  
  43.     local ok2, res2 = pcall(libs.data.unserialize, ctx, "test")
  44.     if not ok2 then
  45.         print("unserialize error:", res)
  46.     end
  47.  
  48.     for k, _ in pairs(res2) do
  49.         print(k)
  50.     end
  51. ]]
  52.  
Advertisement
Add Comment
Please, Sign In to add comment