diff options
| author | Steven Stewart-Gallus <sstewartgallus00@mylangara.bc.ca> | 2013-07-17 22:35:34 -0700 |
|---|---|---|
| committer | Steven Stewart-Gallus <sstewartgallus00@mylangara.bc.ca> | 2013-07-21 20:10:55 -0700 |
| commit | a8870dfbb527ab1c3f740ddb3d3f73a5ce5e9705 (patch) | |
| tree | f1ea8b7f2c67de224910846cde8aca1fcae333bc /src/libstd | |
| parent | fc058191818e4440d36e5ed4ef61bc0a9711be11 (diff) | |
| download | rust-a8870dfbb527ab1c3f740ddb3d3f73a5ce5e9705.tar.gz rust-a8870dfbb527ab1c3f740ddb3d3f73a5ce5e9705.zip | |
Minor cleanup of hashmap
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/hashmap.rs | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/src/libstd/hashmap.rs b/src/libstd/hashmap.rs index 56774560d1d..deeda501942 100644 --- a/src/libstd/hashmap.rs +++ b/src/libstd/hashmap.rs @@ -255,11 +255,8 @@ impl<K:Hash + Eq,V> HashMap<K, V> { let len_buckets = self.buckets.len(); let bucket = self.buckets[idx].take(); - let value = match bucket { - None => None, - Some(Bucket{value, _}) => { - Some(value) - }, + let value = do bucket.map_consume |bucket| { + bucket.value }; /* re-inserting buckets may cause changes in size, so remember @@ -505,7 +502,6 @@ impl<K: Hash + Eq, V> HashMap<K, V> { // `consume_rev_iter` is more efficient than `consume_iter` for vectors HashMapConsumeIterator {iter: self.buckets.consume_rev_iter()} } - } impl<K: Hash + Eq, V: Clone> HashMap<K, V> { @@ -524,14 +520,12 @@ impl<K:Hash + Eq,V:Eq> Eq for HashMap<K, V> { fn eq(&self, other: &HashMap<K, V>) -> bool { if self.len() != other.len() { return false; } - for self.iter().advance |(key, value)| { + do self.iter().all |(key, value)| { match other.find(key) { - None => return false, - Some(v) => if value != v { return false }, + None => false, + Some(v) => value == v } } - - true } fn ne(&self, other: &HashMap<K, V>) -> bool { !self.eq(other) } |
