You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							57 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
	
	
							57 lines
						
					
					
						
							1.1 KiB
						
					
					
				| 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;
 |