From f07c74d93ad2b5292267e5829c4c8493211aa835 Mon Sep 17 00:00:00 2001 From: Huon Wilson Date: Tue, 7 Jan 2014 00:17:38 +1100 Subject: [PATCH] std::trie: remove some obsolete internal iterators. --- src/libextra/serialize.rs | 22 +++----- src/libstd/trie.rs | 102 ++------------------------------------ 2 files changed, 11 insertions(+), 113 deletions(-) diff --git a/src/libextra/serialize.rs b/src/libextra/serialize.rs index e7ccb91fb75..59f7f2a2ffc 100644 --- a/src/libextra/serialize.rs +++ b/src/libextra/serialize.rs @@ -768,14 +768,11 @@ impl< > Encodable for TrieMap { fn encode(&self, e: &mut E) { e.emit_map(self.len(), |e| { - let mut i = 0; - self.each(|key, val| { - e.emit_map_elt_key(i, |e| key.encode(e)); - e.emit_map_elt_val(i, |e| val.encode(e)); - i += 1; - true + for (i, (key, val)) in self.iter().enumerate() { + e.emit_map_elt_key(i, |e| key.encode(e)); + e.emit_map_elt_val(i, |e| val.encode(e)); + } }); - }) } } @@ -799,13 +796,10 @@ impl< impl Encodable for TrieSet { fn encode(&self, s: &mut S) { s.emit_seq(self.len(), |s| { - let mut i = 0; - self.each(|e| { - s.emit_seq_elt(i, |s| e.encode(s)); - i += 1; - true - }); - }) + for (i, e) in self.iter().enumerate() { + s.emit_seq_elt(i, |s| e.encode(s)); + } + }) } } diff --git a/src/libstd/trie.rs b/src/libstd/trie.rs index b66472c72cb..08805c88c7b 100644 --- a/src/libstd/trie.rs +++ b/src/libstd/trie.rs @@ -111,30 +111,6 @@ impl TrieMap { self.root.each_reverse(f) } - /// Visit all key-value pairs in order - #[inline] - pub fn each<'a>(&'a self, f: |&uint, &'a T| -> bool) -> bool { - self.root.each(f) - } - - /// Visit all keys in order - #[inline] - pub fn each_key(&self, f: |&uint| -> bool) -> bool { - self.each(|k, _| f(k)) - } - - /// Visit all values in order - #[inline] - pub fn each_value<'a>(&'a self, f: |&'a T| -> bool) -> bool { - self.each(|_, v| f(v)) - } - - /// Iterate over the map and mutate the contained values - #[inline] - pub fn mutate_values(&mut self, f: |&uint, &mut T| -> bool) -> bool { - self.root.mutate_values(f) - } - /// Visit all keys in reverse order #[inline] pub fn each_key_reverse(&self, f: |&uint| -> bool) -> bool { @@ -331,10 +307,6 @@ impl TrieSet { self.map.remove(value) } - /// Visit all values in order - #[inline] - pub fn each(&self, f: |&uint| -> bool) -> bool { self.map.each_key(f) } - /// Visit all values in reverse order #[inline] pub fn each_reverse(&self, f: |&uint| -> bool) -> bool { @@ -395,17 +367,6 @@ impl TrieNode { } impl TrieNode { - fn each<'a>(&'a self, f: |&uint, &'a T| -> bool) -> bool { - for elt in self.children.iter() { - match *elt { - Internal(ref x) => if !x.each(|i,t| f(i,t)) { return false }, - External(k, ref v) => if !f(&k, v) { return false }, - Nothing => () - } - } - true - } - fn each_reverse<'a>(&'a self, f: |&uint, &'a T| -> bool) -> bool { for elt in self.children.rev_iter() { match *elt { @@ -416,19 +377,6 @@ impl TrieNode { } true } - - fn mutate_values<'a>(&'a mut self, f: |&uint, &mut T| -> bool) -> bool { - for child in self.children.mut_iter() { - match *child { - Internal(ref mut x) => if !x.mutate_values(|i,t| f(i,t)) { - return false - }, - External(k, ref mut v) => if !f(&k, v) { return false }, - Nothing => () - } - } - true - } } // if this was done via a trait, the key could be generic @@ -691,46 +639,6 @@ mod test_map { } } - #[test] - fn test_each() { - let mut m = TrieMap::new(); - - assert!(m.insert(3, 6)); - assert!(m.insert(0, 0)); - assert!(m.insert(4, 8)); - assert!(m.insert(2, 4)); - assert!(m.insert(1, 2)); - - let mut n = 0; - m.each(|k, v| { - assert_eq!(*k, n); - assert_eq!(*v, n * 2); - n += 1; - true - }); - } - - #[test] - fn test_each_break() { - let mut m = TrieMap::new(); - - for x in range(uint::max_value - 10000, uint::max_value).invert() { - m.insert(x, x / 2); - } - - let mut n = uint::max_value - 10000; - m.each(|k, v| { - if n == uint::max_value - 5000 { false } else { - assert!(n < uint::max_value - 5000); - - assert_eq!(*k, n); - assert_eq!(*v, n / 2); - n += 1; - true - } - }); - } - #[test] fn test_each_reverse() { let mut m = TrieMap::new(); @@ -943,13 +851,9 @@ mod test_set { let expected = [x, y]; - let mut i = 0; - - trie.each(|x| { - assert_eq!(expected[i], *x); - i += 1; - true - }); + for (i, x) in trie.iter().enumerate() { + assert_eq!(expected[i], x); + } } #[test]