From cf9e9b21d59eaf6f4d57904ef882a654caa37085 Mon Sep 17 00:00:00 2001 From: Stepan Koltsov Date: Sat, 3 Aug 2013 05:54:05 +0400 Subject: [PATCH] Add default implementation of Map::contains_key function Map::contains_key can be implemented with Map::find. Remove several implementations of contains_key. --- src/libextra/smallintmap.rs | 5 ----- src/libextra/treemap.rs | 5 ----- src/libstd/container.rs | 8 +++++--- src/libstd/hashmap.rs | 8 -------- src/libstd/trie.rs | 6 ------ 5 files changed, 5 insertions(+), 27 deletions(-) diff --git a/src/libextra/smallintmap.rs b/src/libextra/smallintmap.rs index e939f42ac90..cbcb6adcbb0 100644 --- a/src/libextra/smallintmap.rs +++ b/src/libextra/smallintmap.rs @@ -46,11 +46,6 @@ impl Mutable for SmallIntMap { } impl Map for SmallIntMap { - /// Return true if the map contains a value for the specified key - fn contains_key(&self, key: &uint) -> bool { - self.find(key).is_some() - } - /// Return a reference to the value corresponding to the key fn find<'a>(&'a self, key: &uint) -> Option<&'a V> { if *key < self.v.len() { diff --git a/src/libextra/treemap.rs b/src/libextra/treemap.rs index 82c7bf6caf1..094bf0e3d83 100644 --- a/src/libextra/treemap.rs +++ b/src/libextra/treemap.rs @@ -105,11 +105,6 @@ impl Mutable for TreeMap { } impl Map for TreeMap { - /// Return true if the map contains a value for the specified key - fn contains_key(&self, key: &K) -> bool { - self.find(key).is_some() - } - /// Return a reference to the value corresponding to the key fn find<'a>(&'a self, key: &K) -> Option<&'a V> { let mut current: &'a Option<~TreeNode> = &self.root; diff --git a/src/libstd/container.rs b/src/libstd/container.rs index 10f3fc6586f..22525d4cab4 100644 --- a/src/libstd/container.rs +++ b/src/libstd/container.rs @@ -34,11 +34,13 @@ pub trait Mutable: Container { /// A map is a key-value store where values may be looked up by their keys. This /// trait provides basic operations to operate on these stores. pub trait Map: Container { - /// Return true if the map contains a value for the specified key - fn contains_key(&self, key: &K) -> bool; - /// Return a reference to the value corresponding to the key fn find<'a>(&'a self, key: &K) -> Option<&'a V>; + + /// Return true if the map contains a value for the specified key + fn contains_key(&self, key: &K) -> bool { + self.find(key).is_some() + } } /// This trait provides basic operations to modify the contents of a map. diff --git a/src/libstd/hashmap.rs b/src/libstd/hashmap.rs index e7d51106c58..424a6884d94 100644 --- a/src/libstd/hashmap.rs +++ b/src/libstd/hashmap.rs @@ -292,14 +292,6 @@ impl Mutable for HashMap { } impl Map for HashMap { - /// Return true if the map contains a value for the specified key - fn contains_key(&self, k: &K) -> bool { - match self.bucket_for_key(k) { - FoundEntry(_) => {true} - TableFull | FoundHole(_) => {false} - } - } - /// Return a reference to the value corresponding to the key fn find<'a>(&'a self, k: &K) -> Option<&'a V> { match self.bucket_for_key(k) { diff --git a/src/libstd/trie.rs b/src/libstd/trie.rs index 97e2b3b3c34..234f8e31873 100644 --- a/src/libstd/trie.rs +++ b/src/libstd/trie.rs @@ -48,12 +48,6 @@ impl Mutable for TrieMap { } impl Map for TrieMap { - /// Return true if the map contains a value for the specified key - #[inline] - fn contains_key(&self, key: &uint) -> bool { - self.find(key).is_some() - } - /// Return a reference to the value corresponding to the key #[inline] fn find<'a>(&'a self, key: &uint) -> Option<&'a T> {