What I have now is this function:
function MyAddon:New()
local object = setmetatable({}, { __index = self })
object.elements = { }
object.lastAccess = os.time()
return object
end
Now I want to set lastAccess
every time when something gets added or removed from .elements
without set it manually in my adding/removing function. how can I do that?
edit:
@lhf and @Piglet thanks. so that means something like this? (btw this is for a deque i forgot to mention)
function MyAddon:New()
local object = setmetatable({}, { __index = self })
object.lastAccess = 0
object.elements = { }
local _elements = object.elements
object.elements = { }
setmetatable(object.elements,
{
__index = function(t, k)
return _elements[k]
end,
__newindex = function(t, k, v)
object.lastAccess = os.time()
_elements[k] = v
end,
__mode = "kv",
})
return object
end
function MyAddon:GetLastAccess()
return self.lastAccess
end