Dcs lua tool (#66)
* custom drawings and animations for video * wip * Work in progress refactor for toolkit * wip * Refactored everything for Lua Compile Tool * Trying out the github action * updated the github action ref * initial working version --------- Co-authored-by: ex61wi <tim.rorije@ing.com> Co-authored-by: dutchie031 <dutchie031>
This commit is contained in:
committed by
GitHub
co-authored by
ex61wi
dutchie031 <dutchie031>
parent
c027921527
commit
128aed1d2b
@@ -0,0 +1,47 @@
|
||||
|
||||
---@class Queue
|
||||
---@field private _items Array
|
||||
---@field private _first number
|
||||
---@field private _last number
|
||||
local Queue = {}
|
||||
Queue.__index = Queue
|
||||
|
||||
---@return Queue
|
||||
function Queue.new()
|
||||
|
||||
local self = setmetatable({}, Queue)
|
||||
self._items = {}
|
||||
self._first = 1
|
||||
self._last = 0
|
||||
return self
|
||||
end
|
||||
|
||||
---@return nil
|
||||
function Queue:push(item)
|
||||
self._last = self._last + 1
|
||||
self._items[self._last] = item
|
||||
end
|
||||
|
||||
---@return any?
|
||||
function Queue:pop()
|
||||
if self._first > self._last then
|
||||
return nil
|
||||
end
|
||||
|
||||
local item = self._items[self._first]
|
||||
self._items[self._first] = nil
|
||||
self._first = self._first + 1
|
||||
return item
|
||||
end
|
||||
|
||||
|
||||
---@return Array<any>
|
||||
function Queue:toList()
|
||||
local items = {}
|
||||
for i = self._first, self._last do
|
||||
items[#items + 1] = self._items[i]
|
||||
end
|
||||
return items
|
||||
end
|
||||
|
||||
return Queue
|
||||
Reference in New Issue
Block a user