Add 'items' iter to hashmap.
This commit is contained in:
parent
2880ecd73f
commit
4d17283371
1 changed files with 12 additions and 0 deletions
|
|
@ -20,6 +20,7 @@ type hashmap[K, V] = obj {
|
|||
fn find(&K key) -> util.option[V];
|
||||
fn remove(&K key) -> util.option[V];
|
||||
fn rehash();
|
||||
iter items() -> tup(K,V);
|
||||
};
|
||||
|
||||
fn mk_hashmap[K, V](&hashfn[K] hasher, &eqfn[K] eqer) -> hashmap[K, V] {
|
||||
|
|
@ -216,6 +217,17 @@ fn mk_hashmap[K, V](&hashfn[K] hasher, &eqfn[K] eqer) -> hashmap[K, V] {
|
|||
rehash[K, V](hasher, eqer, bkts, nbkts, newbkts, nbkts);
|
||||
bkts = newbkts;
|
||||
}
|
||||
|
||||
iter items() -> tup(K,V) {
|
||||
for (bucket[K,V] b in bkts) {
|
||||
alt (b) {
|
||||
case(some[K,V](?k,?v)) {
|
||||
put tup(k,v);
|
||||
}
|
||||
case (_) { }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let vec[mutable bucket[K, V]] bkts =
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue