Holy shit I just wrote documentation

This commit is contained in:
Justin van der Leij 2018-03-07 11:05:30 +01:00
parent 8810005217
commit 63d8c39b31
9 changed files with 159 additions and 111 deletions

View file

@ -1,6 +1,8 @@
local List = {}
local mt = {__index = List}
--- Creates a new List.
-- @return A new list
function List.new()
return setmetatable({
objects = {},
@ -9,20 +11,32 @@ function List.new()
}, mt)
end
--- Clears the List completely.
-- @return self
function List:clear()
self.objects = {}
self.pointers = {}
self.size = 0
return self
end
--- Adds an object to the List.
-- @param obj The object to add
-- @return self
function List:add(obj)
local size = self.size + 1
self.objects[size] = obj
self.pointers[obj] = size
self.size = size
return self
end
--- Removes an object from the List.
-- @param obj The object to remove
-- @return self
function List:remove(obj)
local index = self.pointers[obj]
local size = self.size
@ -38,15 +52,20 @@ function List:remove(obj)
self.objects[size] = nil
end
self.pointers[obj] = nil
self.size = size - 1
end
--- Gets an object by numerical index.
-- @param index The index to look at
-- @return The object at the index
function List:get(index)
return self.objects[index]
end
--- Gets if the List has the object.
-- @param obj The object to search for
-- @param true if the list has the object, false otherwise
function List:has(obj)
return self.pointers[obj] and true
end