A "double-ended queue" implementation. This allows pushing and popping
values to the left or right side of the queue. This can be used for
classic 'stack' and 'queue' uses - for a stack, push and pop from one end,
for a queue, push and pop from opposite ends.
# will always return the size of the queue.
The left-most item in the queue wil always be at index 1, the right-most
will be at index #.
You can iterate via ipairs, but as with all tables, the queue contains any
nil values, it will stop at that point. To iterate the whole queue, you
need to use the # operator. Eg:
local q = Queue(1, nil, 3)
for i,v in ipairs(q) do print(v) end -- Outputs "1"
for i = 1, #q do print(v) end -- Outputs "1", "nil", "3"
| Signature |
cp.collect.Queue.contains(queue, item) -> boolean |
| Type |
Function |
| Description |
Checks if the queue contains the specified item. |
| Parameters |
- queue - The queue to check.
- item - The item to check for.
|
| Returns |
true if the item is in the queue.
|
| Signature |
cp.collect.Queue.len(queue) -> anything |
| Type |
Function |
| Description |
Returns the number of items in the queue. |
| Parameters |
- queue - The queue to check.
|
| Returns |
- The total number of items.
|
| Signature |
cp.collect.Queue.peekLeft(queue) -> anything |
| Type |
Function |
| Description |
Returns the left-most value from the queue without removig it. |
| Parameters |
- queue - The queue to peek into.
|
| Returns |
- The left-most value of the
Queue.
|
| Signature |
cp.collect.Queue.peekRight(queue) -> anything |
| Type |
Function |
| Description |
Returns the right-most value from the queue without removig it. |
| Parameters |
- queue - The queue to peek into.
|
| Returns |
- The right-most value of the
Queue.
|
| Signature |
cp.collect.Queue.popLeft(queue) -> anything |
| Type |
Function |
| Description |
Removes the left-most value from the queue and returns it. |
| Parameters |
- queue - The queue to pop from.
|
| Returns |
- The left-most value of the
Queue.
|
| Signature |
cp.collect.Queue.popRight(queue) -> anything |
| Type |
Function |
| Description |
Removes the right-most value from the queue and returns it. |
| Parameters |
- queue - The queue to pop from.
|
| Returns |
- The right-most value of the
Queue.
|
| Signature |
cp.collect.Queue.pushLeft(queue, ...) -> cp.collect.Queue |
| Type |
Function |
| Description |
Pushes the values to the left side of the queue. |
| Parameters |
- queue - The queue to push into.
- ... - The values to push.
|
| Returns |
|
| Signature |
cp.collect.Queue.pushRight(queue, ...) -> cp.collect.Queue |
| Type |
Function |
| Description |
Pushes the values to the right side of the queue. |
| Parameters |
- queue - The queue to push into.
- ... - The values to push.
|
| Returns |
|
| Signature |
cp.collect.Queue:removeItem(item) -> number |
| Type |
Function |
| Description |
Attempts to remove the specified item from the queue. |
| Parameters |
- item - The item to remove, if present.
|
| Returns |
- The index of the item, or
nil if not found.
|
| Signature |
cp.collect.Queue.removeItem(queue, item) -> number |
| Type |
Function |
| Description |
Attempts to remove the specified item from the queue. |
| Parameters |
- queue - The queue to modify.
- item - The item to remove, if present.
|
| Returns |
- The index of the item, or
nil if not found.
|
| Signature |
cp.collect.Queue.new([...]) -> cp.collect.Queue |
| Type |
Constructor |
| Description |
Creates a new Queue. |
| Parameters |
- ... - The optional list of values to add to the right of the queue.
|
| Returns |
|
| Notes |
- You can also create a new queue by calling
Queue(..) directly.
|
| Signature |
cp.collect.Queue:contains(item) -> boolean |
| Type |
Method |
| Description |
Checks if the queue contains the specified item. |
| Parameters |
- item - The item to check for.
|
| Returns |
true if the item is in the queue.
|
| Signature |
cp.collect.Queue:len(queue) -> anything |
| Type |
Method |
| Description |
Returns the number of items in the queue. |
| Parameters |
- queue - The queue to check.
|
| Returns |
- The total number of items.
|
| Signature |
cp.collect.Queue:peekLeft() -> anything |
| Type |
Method |
| Description |
Returns the left-most value from the queue without removig it. |
| Parameters |
|
| Returns |
- The left-most value of the
Queue.
|
| Signature |
cp.collect.Queue:peekRight() -> anything |
| Type |
Method |
| Description |
Returns the right-most value from the queue without removig it. |
| Parameters |
- queue - The queue to peek into.
|
| Returns |
- The right-most value of the
Queue.
|
| Signature |
cp.collect.Queue:popLeft() -> anything |
| Type |
Method |
| Description |
Removes the left-most value from the queue and returns it. |
| Parameters |
|
| Returns |
- The left-most value of the
Queue.
|
| Signature |
cp.collect.Queue:popRight() -> anything |
| Type |
Method |
| Description |
Removes the right-most value from the queue and returns it. |
| Parameters |
|
| Returns |
- The right-most value of the
Queue.
|
| Signature |
cp.collect.Queue:pushLeft(...) -> cp.collect.Queue |
| Type |
Method |
| Description |
Pushes the values to the left side of the queue. |
| Parameters |
- ... - The values to push.
|
| Returns |
|
| Signature |
cp.collect.Queue:pushRight(...) -> cp.collect.Queue |
| Type |
Method |
| Description |
Pushes the values to the right side of the queue. |
| Parameters |
- ... - The values to push.
|
| Returns |
|