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