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;
							 |