83 lines
2.3 KiB
Lua

-------------------------------------------------------------------------------
---@class Cache
local Cache = {
---single-line comment
classname = "HMCache"
}
-------------------------------------------------------------------------------
---Return Cache
---@return table
function Cache.get()
if global.caches == nil then global.caches = {} end
return global.caches
end
-------------------------------------------------------------------------------
---Return data Cache
---@param classname string
---@param name string
---@return any
function Cache.getData(classname, name)
local data = Cache.get()
if classname == nil and name == nil then return data end
if data[classname] == nil or data[classname][name] == nil then return nil end
return data[classname][name]
end
-------------------------------------------------------------------------------
---Set data Cache
---@param classname string
---@param name string
---@param value any
---@return any
function Cache.setData(classname, name, value)
local data = Cache.get()
if data[classname] == nil then data[classname] = {} end
data[classname][name] = value
end
-------------------------------------------------------------------------------
---Has data
---@param classname string
---@param name string
---@return boolean
function Cache.hasData(classname, name)
local data = Cache.get()
return data[classname] ~= nil and data[classname][name] ~= nil
end
-------------------------------------------------------------------------------
---Is empty
---@param classname string
---@param name string
---@return boolean
function Cache.isEmpty(classname, name)
local data = Cache.get()
if data[classname] ~= nil and data[classname][name] ~= nil then
if type(data[classname][name]) == "string" then
return data[classname][name] == ""
else
return table.size(data[classname][name]) == 0
end
end
return true
end
-------------------------------------------------------------------------------
---Reset data
---@param classname string
---@param name string
function Cache.reset(classname, name)
local data = Cache.get()
if classname == nil and name == nil then
global.caches = {}
elseif data[classname] ~= nil and name == nil then
data[classname] = nil
elseif data[classname] ~= nil then
data[classname][name] = nil
end
end
return Cache