Mutable back iterator
Our IntoIterator
implements Iterator
- hence we can iterate forward traversing the elements.
What if we wanted to traverse the elements back? For that we have to implement DoubleEndedIterator. To implement double ended
iterator it is mandatary that we implement Iterator
first for our struct - whcih we have already
done.
To implement DoubleEndedIterator
we need to provide an implementation of the next_back
method
and our implementation is no-brainer - we just call pop_back on our list!
Following is our implementation of DoubleEndedIterator:
impl<'a, T: std::fmt::Debug + Default + Clone + PartialEq> DoubleEndedIterator
for IntoIterator<'a, T>
{
fn next_back(&mut self) -> Option<Self::Item> {
self.list.pop_back()
}
}