From a343e435d59e21188f6fc5918324c751a7eff6a9 Mon Sep 17 00:00:00 2001 From: Kevin Cantu Date: Sun, 11 Nov 2012 01:01:37 -0800 Subject: Add an insert_with_key function to the Map trait --- src/libstd/smallintmap.rs | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/libstd/smallintmap.rs') diff --git a/src/libstd/smallintmap.rs b/src/libstd/smallintmap.rs index 9dc216a2155..8439d214ca0 100644 --- a/src/libstd/smallintmap.rs +++ b/src/libstd/smallintmap.rs @@ -103,6 +103,13 @@ impl SmallIntMap: map::Map { pure fn find(key: uint) -> Option { find(self, key) } fn rehash() { fail } + fn insert_with_key(ff: fn(uint, V, V) -> V, key: uint, val: V) -> bool { + match self.find(key) { + None => return self.insert(key, val), + Some(copy orig) => return self.insert(key, ff(key, orig, val)), + } + } + pure fn each(it: fn(key: uint, value: V) -> bool) { self.each_ref(|k, v| it(*k, *v)) } -- cgit 1.4.1-3-g733a5