From 49a26a2bd5ae0135ef350c85b2ee4c63ff21fb53 Mon Sep 17 00:00:00 2001 From: Lokathor Date: Mon, 10 Feb 2020 19:52:15 -0700 Subject: [PATCH] Closes https://github.com/Lokathor/tinyvec/issues/48 --- src/arrayvec.rs | 3 ++- src/lib.rs | 2 +- src/tinyvec.rs | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/arrayvec.rs b/src/arrayvec.rs index 97699fd..3f37ce8 100644 --- a/src/arrayvec.rs +++ b/src/arrayvec.rs @@ -808,6 +808,7 @@ impl<'p, A: Array> Iterator for ArrayVecDrain<'p, A> { } } } +impl<'p, A: Array> FusedIterator for ArrayVecDrain<'p, A> { } impl<'p, A: Array> Drop for ArrayVecDrain<'p, A> { #[inline] fn drop(&mut self) { @@ -901,7 +902,7 @@ impl ArrayVecIterator { &self.data.as_slice()[self.base..self.len] } } - +impl FusedIterator for ArrayVecIterator { } impl Iterator for ArrayVecIterator { type Item = A::Item; #[inline] diff --git a/src/lib.rs b/src/lib.rs index 1144267..be76b8d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -68,7 +68,7 @@ use core::{ UpperExp, UpperHex, }, hash::{Hash, Hasher}, - iter::{Extend, FromIterator, IntoIterator, Iterator}, + iter::{Extend, FromIterator, FusedIterator, IntoIterator, Iterator}, mem::{needs_drop, replace}, ops::{Deref, DerefMut, Index, IndexMut, RangeBounds}, slice::SliceIndex, diff --git a/src/tinyvec.rs b/src/tinyvec.rs index ff8cace..625022c 100644 --- a/src/tinyvec.rs +++ b/src/tinyvec.rs @@ -639,6 +639,7 @@ pub struct TinyVecDrain<'p, A: Array> { target_index: usize, target_count: usize, } +impl<'p, A: Array> FusedIterator for TinyVecDrain<'p, A> { } impl<'p, A: Array> Iterator for TinyVecDrain<'p, A> { type Item = A::Item; #[inline] @@ -770,7 +771,7 @@ impl TinyVecIterator { } } } - +impl<'p, A: Array> FusedIterator for TinyVecIterator<'p, A> { } impl Iterator for TinyVecIterator { type Item = A::Item; #[inline]