diff options
| author | bors <bors@rust-lang.org> | 2013-07-27 11:16:31 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2013-07-27 11:16:31 -0700 |
| commit | 5157e05049d76f1206c9f879961194d4ac26ce58 (patch) | |
| tree | 0f1eba07e218cbacf1cdf3655eaff331169ea617 | |
| parent | 0522955d10f76ac2ca3182de9ff5b774982243cb (diff) | |
| parent | feb18fe8daa3952718c29039ec792d5e69d1276f (diff) | |
| download | rust-5157e05049d76f1206c9f879961194d4ac26ce58.tar.gz rust-5157e05049d76f1206c9f879961194d4ac26ce58.zip | |
auto merge of #8036 : sfackler/rust/container-impls, r=msullivan
A couple of implementations of Container::is_empty weren't exactly self.len() == 0 so I left them alone (e.g. Treemap).
| -rw-r--r-- | src/libextra/bitv.rs | 2 | ||||
| -rw-r--r-- | src/libextra/priority_queue.rs | 3 | ||||
| -rw-r--r-- | src/libextra/ringbuf.rs | 3 | ||||
| -rw-r--r-- | src/libextra/smallintmap.rs | 3 | ||||
| -rw-r--r-- | src/libextra/treemap.rs | 13 | ||||
| -rw-r--r-- | src/libstd/container.rs | 15 | ||||
| -rw-r--r-- | src/libstd/hashmap.rs | 19 | ||||
| -rw-r--r-- | src/libstd/str.rs | 8 | ||||
| -rw-r--r-- | src/libstd/trie.rs | 23 |
9 files changed, 13 insertions, 76 deletions
diff --git a/src/libextra/bitv.rs b/src/libextra/bitv.rs index 168d6a39916..6e52802578c 100644 --- a/src/libextra/bitv.rs +++ b/src/libextra/bitv.rs @@ -703,8 +703,8 @@ impl cmp::Eq for BitvSet { } impl Container for BitvSet { + #[inline] fn len(&self) -> uint { self.size } - fn is_empty(&self) -> bool { self.size == 0 } } impl Mutable for BitvSet { diff --git a/src/libextra/priority_queue.rs b/src/libextra/priority_queue.rs index d07b645a541..dd24a2a9eb9 100644 --- a/src/libextra/priority_queue.rs +++ b/src/libextra/priority_queue.rs @@ -27,9 +27,6 @@ pub struct PriorityQueue<T> { impl<T:Ord> Container for PriorityQueue<T> { /// Returns the length of the queue fn len(&self) -> uint { self.data.len() } - - /// Returns true if a queue contains no elements - fn is_empty(&self) -> bool { self.len() == 0 } } impl<T:Ord> Mutable for PriorityQueue<T> { diff --git a/src/libextra/ringbuf.rs b/src/libextra/ringbuf.rs index f46af664b18..aa670ec5ff8 100644 --- a/src/libextra/ringbuf.rs +++ b/src/libextra/ringbuf.rs @@ -34,9 +34,6 @@ pub struct RingBuf<T> { impl<T> Container for RingBuf<T> { /// Return the number of elements in the RingBuf fn len(&self) -> uint { self.nelts } - - /// Return true if the RingBufcontains no elements - fn is_empty(&self) -> bool { self.len() == 0 } } impl<T> Mutable for RingBuf<T> { diff --git a/src/libextra/smallintmap.rs b/src/libextra/smallintmap.rs index bd78f41ddf5..bf6f80534b4 100644 --- a/src/libextra/smallintmap.rs +++ b/src/libextra/smallintmap.rs @@ -37,9 +37,6 @@ impl<V> Container for SmallIntMap<V> { } sz } - - /// Return true if the map contains no elements - fn is_empty(&self) -> bool { self.len() == 0 } } impl<V> Mutable for SmallIntMap<V> { diff --git a/src/libextra/treemap.rs b/src/libextra/treemap.rs index 303ae6a6d1d..8c7ace56412 100644 --- a/src/libextra/treemap.rs +++ b/src/libextra/treemap.rs @@ -135,19 +135,6 @@ impl<K: TotalOrd, V> MutableMap<K, V> for TreeMap<K, V> { find_mut(&mut self.root, key) } - /// Insert a key-value pair into the map. An existing value for a - /// key is replaced by the new value. Return true if the key did - /// not already exist in the map. - fn insert(&mut self, key: K, value: V) -> bool { - self.swap(key, value).is_none() - } - - /// Remove a key-value pair from the map. Return true if the key - /// was present in the map, otherwise false. - fn remove(&mut self, key: &K) -> bool { - self.pop(key).is_some() - } - /// Insert a key-value pair from the map. If the key already had a value /// present in the map, that value is returned. Otherwise None is returned. fn swap(&mut self, key: K, value: V) -> Option<V> { diff --git a/src/libstd/container.rs b/src/libstd/container.rs index 4bad28ca338..d855beea50b 100644 --- a/src/libstd/container.rs +++ b/src/libstd/container.rs @@ -19,7 +19,10 @@ pub trait Container { fn len(&self) -> uint; /// Return true if the container contains no elements - fn is_empty(&self) -> bool; + #[inline] + fn is_empty(&self) -> bool { + self.len() == 0 + } } /// A trait to represent mutable containers @@ -43,11 +46,17 @@ pub trait MutableMap<K, V>: Map<K, V> + Mutable { /// Insert a key-value pair into the map. An existing value for a /// key is replaced by the new value. Return true if the key did /// not already exist in the map. - fn insert(&mut self, key: K, value: V) -> bool; + #[inline] + fn insert(&mut self, key: K, value: V) -> bool { + self.swap(key, value).is_none() + } /// Remove a key-value pair from the map. Return true if the key /// was present in the map, otherwise false. - fn remove(&mut self, key: &K) -> bool; + #[inline] + fn remove(&mut self, key: &K) -> bool { + self.pop(key).is_some() + } /// Insert a key-value pair from the map. If the key already had a value /// present in the map, that value is returned. Otherwise None is returned. diff --git a/src/libstd/hashmap.rs b/src/libstd/hashmap.rs index deeda501942..6bef110bfe5 100644 --- a/src/libstd/hashmap.rs +++ b/src/libstd/hashmap.rs @@ -282,9 +282,6 @@ impl<K:Hash + Eq,V> HashMap<K, V> { impl<K:Hash + Eq,V> Container for HashMap<K, V> { /// Return the number of elements in the map fn len(&self) -> uint { self.size } - - /// Return true if the map contains no elements - fn is_empty(&self) -> bool { self.len() == 0 } } impl<K:Hash + Eq,V> Mutable for HashMap<K, V> { @@ -325,19 +322,6 @@ impl<K:Hash + Eq,V> MutableMap<K, V> for HashMap<K, V> { Some(self.mut_value_for_bucket(idx)) } - /// Insert a key-value pair into the map. An existing value for a - /// key is replaced by the new value. Return true if the key did - /// not already exist in the map. - fn insert(&mut self, k: K, v: V) -> bool { - self.swap(k, v).is_none() - } - - /// Remove a key-value pair from the map. Return true if the key - /// was present in the map, otherwise false. - fn remove(&mut self, k: &K) -> bool { - self.pop(k).is_some() - } - /// Insert a key-value pair from the map. If the key already had a value /// present in the map, that value is returned. Otherwise None is returned. fn swap(&mut self, k: K, v: V) -> Option<V> { @@ -661,9 +645,6 @@ impl<T:Hash + Eq> Eq for HashSet<T> { impl<T:Hash + Eq> Container for HashSet<T> { /// Return the number of elements in the set fn len(&self) -> uint { self.map.len() } - - /// Return true if the set contains no elements - fn is_empty(&self) -> bool { self.map.is_empty() } } impl<T:Hash + Eq> Mutable for HashSet<T> { diff --git a/src/libstd/str.rs b/src/libstd/str.rs index c600e7f6c09..1c91cbb8e1f 100644 --- a/src/libstd/str.rs +++ b/src/libstd/str.rs @@ -1099,24 +1099,16 @@ impl<'self> Container for &'self str { fn len(&self) -> uint { do self.as_imm_buf |_p, n| { n - 1u } } - #[inline] - fn is_empty(&self) -> bool { - self.len() == 0 - } } impl Container for ~str { #[inline] fn len(&self) -> uint { self.as_slice().len() } - #[inline] - fn is_empty(&self) -> bool { self.len() == 0 } } impl Container for @str { #[inline] fn len(&self) -> uint { self.as_slice().len() } - #[inline] - fn is_empty(&self) -> bool { self.len() == 0 } } impl Mutable for ~str { diff --git a/src/libstd/trie.rs b/src/libstd/trie.rs index 822b005de37..4665f361340 100644 --- a/src/libstd/trie.rs +++ b/src/libstd/trie.rs @@ -36,10 +36,6 @@ impl<T> Container for TrieMap<T> { /// Return the number of elements in the map #[inline] fn len(&self) -> uint { self.length } - - /// Return true if the map contains no elements - #[inline] - fn is_empty(&self) -> bool { self.len() == 0 } } impl<T> Mutable for TrieMap<T> { @@ -87,21 +83,6 @@ impl<T> MutableMap<uint, T> for TrieMap<T> { find_mut(&mut self.root.children[chunk(*key, 0)], *key, 1) } - /// Insert a key-value pair into the map. An existing value for a - /// key is replaced by the new value. Return true if the key did - /// not already exist in the map. - #[inline] - fn insert(&mut self, key: uint, value: T) -> bool { - self.swap(key, value).is_none() - } - - /// Remove a key-value pair from the map. Return true if the key - /// was present in the map, otherwise false. - #[inline] - fn remove(&mut self, key: &uint) -> bool { - self.pop(key).is_some() - } - /// Insert a key-value pair from the map. If the key already had a value /// present in the map, that value is returned. Otherwise None is returned. fn swap(&mut self, key: uint, value: T) -> Option<T> { @@ -194,10 +175,6 @@ impl Container for TrieSet { /// Return the number of elements in the set #[inline] fn len(&self) -> uint { self.map.len() } - - /// Return true if the set contains no elements - #[inline] - fn is_empty(&self) -> bool { self.map.is_empty() } } impl Mutable for TrieSet { |
