diff --git a/src/libextra/dlist.rs b/src/libextra/dlist.rs index feafce58e6e9..608506546079 100644 --- a/src/libextra/dlist.rs +++ b/src/libextra/dlist.rs @@ -72,11 +72,6 @@ pub struct ConsumeIterator { priv list: DList } -/// DList reverse consuming iterator -pub struct ConsumeRevIterator { - priv list: DList -} - /// Rawlink is a type like Option but for holding a raw pointer impl Rawlink { /// Like Option::None for Rawlink @@ -346,8 +341,8 @@ impl DList { } /// Consume the list into an iterator yielding elements by value, in reverse - pub fn consume_rev_iter(self) -> ConsumeRevIterator { - ConsumeRevIterator{list: self} + pub fn consume_rev_iter(self) -> InvertIterator> { + self.consume_iter().invert() } } @@ -494,11 +489,8 @@ impl Iterator for ConsumeIterator { } } -impl Iterator for ConsumeRevIterator { - fn next(&mut self) -> Option { self.list.pop_back() } - fn size_hint(&self) -> (uint, Option) { - (self.list.length, Some(self.list.length)) - } +impl DoubleEndedIterator for ConsumeIterator { + fn next_back(&mut self) -> Option { self.list.pop_back() } } impl> FromIterator for DList {