diff options
| author | Nicholas Nethercote <nnethercote@mozilla.com> | 2018-09-14 08:06:52 +1000 |
|---|---|---|
| committer | Nicholas Nethercote <nnethercote@mozilla.com> | 2018-09-14 08:51:31 +1000 |
| commit | 56be2afec56c6c958b3185a4ce8307d13fb8bf2f (patch) | |
| tree | cc51c0061edcb803b230cc97ba9d8cb1059aaac1 /src/librustc_data_structures | |
| parent | b697409f10e70558ef72d39eee4a5f7af60cf16b (diff) | |
Remove `Iter` and `SparseIter` in indexed_set.rs.
Because they're just thin wrappers around `BitIter` and `slice::Iter`.
Diffstat (limited to 'src/librustc_data_structures')
| -rw-r--r-- | src/librustc_data_structures/indexed_set.rs | 42 |
1 files changed, 7 insertions, 35 deletions
diff --git a/src/librustc_data_structures/indexed_set.rs b/src/librustc_data_structures/indexed_set.rs index be519e7bbde..5ba8c150e1f 100644 --- a/src/librustc_data_structures/indexed_set.rs +++ b/src/librustc_data_structures/indexed_set.rs @@ -138,10 +138,8 @@ impl<T: Idx> IdxSet<T> { bitwise(self.words_mut(), other.words(), &Intersect) } - pub fn iter(&self) -> Iter<T> { - Iter { - iter: self.0.iter() - } + pub fn iter(&self) -> BitIter<T> { + self.0.iter() } } @@ -157,18 +155,6 @@ impl<T: Idx> SubtractFromIdxSet<T> for IdxSet<T> { } } -pub struct Iter<'a, T: Idx> { - iter: BitIter<'a, T> -} - -impl<'a, T: Idx> Iterator for Iter<'a, T> { - type Item = T; - - fn next(&mut self) -> Option<T> { - self.iter.next() - } -} - const SPARSE_MAX: usize = 8; /// A sparse index set with a maximum of SPARSE_MAX elements. Used by @@ -221,10 +207,8 @@ impl<T: Idx> SparseIdxSet<T> { dense } - fn iter(&self) -> SparseIter<T> { - SparseIter { - iter: self.0.iter(), - } + fn iter(&self) -> slice::Iter<T> { + self.0.iter() } } @@ -248,18 +232,6 @@ impl<T: Idx> SubtractFromIdxSet<T> for SparseIdxSet<T> { } } -pub struct SparseIter<'a, T: Idx> { - iter: slice::Iter<'a, T>, -} - -impl<'a, T: Idx> Iterator for SparseIter<'a, T> { - type Item = T; - - fn next(&mut self) -> Option<T> { - self.iter.next().map(|e| *e) - } -} - /// Like IdxSet, but with a hybrid representation: sparse when there are few /// elements in the set, but dense when there are many. It's especially /// efficient for sets that typically have a small number of elements, but a @@ -370,8 +342,8 @@ impl<T: Idx> SubtractFromIdxSet<T> for HybridIdxSet<T> { } pub enum HybridIter<'a, T: Idx> { - Sparse(SparseIter<'a, T>), - Dense(Iter<'a, T>), + Sparse(slice::Iter<'a, T>), + Dense(BitIter<'a, T>), } impl<'a, T: Idx> Iterator for HybridIter<'a, T> { @@ -379,7 +351,7 @@ impl<'a, T: Idx> Iterator for HybridIter<'a, T> { fn next(&mut self) -> Option<T> { match self { - HybridIter::Sparse(sparse) => sparse.next(), + HybridIter::Sparse(sparse) => sparse.next().map(|e| *e), HybridIter::Dense(dense) => dense.next(), } } |
