Skip to content

Commit 1834249

Browse files
committed
libcore: add find_ref/get_ref to SendMap trait
1 parent 10e317d commit 1834249

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/libcore/send_map.rs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ trait SendMap<K:Eq Hash, V: Copy> {
2222
fn each_value_ref(&self, blk: fn(v: &V) -> bool);
2323
fn find(&const self, k: &K) -> Option<V>;
2424
fn get(&const self, k: &K) -> V;
25-
fn with_find_ref<T>(&const self, k: &K, blk: fn(Option<&V>) -> T) -> T;
26-
fn with_get_ref<T>(&const self, k: &K, blk: fn(v: &V) -> T) -> T;
25+
fn find_ref(&self, k: &K) -> Option<&self/V>;
26+
fn get_ref(&self, k: &K) -> &self/V;
2727
}
2828

2929
/// Open addressing with linear probing.
@@ -304,6 +304,13 @@ mod linear {
304304
}
305305
}
306306

307+
fn get_ref(&self, k: &K) -> &self/V {
308+
match self.find_ref(k) {
309+
Some(v) => v,
310+
None => fail fmt!("No entry found for key: %?", k),
311+
}
312+
}
313+
307314
fn each_ref(&self, blk: fn(k: &K, v: &V) -> bool) {
308315
for vec::each(self.buckets) |slot| {
309316
let mut broke = false;

0 commit comments

Comments
 (0)