diff options
Diffstat (limited to 'src/put_back_n_impl.rs')
-rw-r--r-- | src/put_back_n_impl.rs | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/put_back_n_impl.rs b/src/put_back_n_impl.rs index dcb2894..60ea8e6 100644 --- a/src/put_back_n_impl.rs +++ b/src/put_back_n_impl.rs @@ -1,3 +1,5 @@ +use alloc::vec::Vec; + use crate::size_hint; /// An iterator adaptor that allows putting multiple @@ -47,12 +49,8 @@ impl<I: Iterator> PutBackN<I> { impl<I: Iterator> Iterator for PutBackN<I> { type Item = I::Item; #[inline] - fn next(&mut self) -> Option<I::Item> { - if self.top.is_empty() { - self.iter.next() - } else { - self.top.pop() - } + fn next(&mut self) -> Option<Self::Item> { + self.top.pop().or_else(|| self.iter.next()) } #[inline] |