1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- declare class Queue<ValueType> implements Iterable<ValueType> {
- /**
- The size of the queue.
- */
- readonly size: number;
-
- /**
- Tiny queue data structure.
-
- The instance is an [`Iterable`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols), which means you can iterate over the queue front to back with a “for…of” loop, or use spreading to convert the queue to an array. Don't do this unless you really need to though, since it's slow.
-
- @example
- ```
- import Queue = require('yocto-queue');
-
- const queue = new Queue();
-
- queue.enqueue('🦄');
- queue.enqueue('🌈');
-
- console.log(queue.size);
- //=> 2
-
- console.log(...queue);
- //=> '🦄 🌈'
-
- console.log(queue.dequeue());
- //=> '🦄'
-
- console.log(queue.dequeue());
- //=> '🌈'
- ```
- */
- constructor();
-
- [Symbol.iterator](): IterableIterator<ValueType>;
-
- /**
- Add a value to the queue.
- */
- enqueue(value: ValueType): void;
-
- /**
- Remove the next value in the queue.
-
- @returns The removed value or `undefined` if the queue is empty.
- */
- dequeue(): ValueType | undefined;
-
- /**
- Clear the queue.
- */
- clear(): void;
- }
-
- export = Queue;
|