29 lines
		
	
	
		
			523 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			29 lines
		
	
	
		
			523 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
| 
								 | 
							
								package haxe.iterators;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import haxe.ds.HashMap;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class HashMapKeyValueIterator<K:{function hashCode():Int;}, V> {
							 | 
						||
| 
								 | 
							
									final map:HashMap<K, V>;
							 | 
						||
| 
								 | 
							
									final keys:Iterator<K>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									public inline function new(map:HashMap<K, V>) {
							 | 
						||
| 
								 | 
							
										this.map = map;
							 | 
						||
| 
								 | 
							
										this.keys = map.keys();
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										See `Iterator.hasNext`
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									public inline function hasNext():Bool {
							 | 
						||
| 
								 | 
							
										return keys.hasNext();
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/**
							 | 
						||
| 
								 | 
							
										See `Iterator.next`
							 | 
						||
| 
								 | 
							
									**/
							 | 
						||
| 
								 | 
							
									public inline function next():{key:K, value:V} {
							 | 
						||
| 
								 | 
							
										var key = keys.next();
							 | 
						||
| 
								 | 
							
										return {value: map.get(key), key: key};
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 |