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
			| 
											3 years ago
										 | 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; |