From 9f92ecf4a6bc61d6cd679bf1e7bd65c85c92e473 Mon Sep 17 00:00:00 2001 From: Pedro Ferreira Date: Thu, 30 Oct 2025 10:31:49 +0000 Subject: [PATCH] Implement Clone for IntoIter --- src/vec.rs | 7 +++++++ tests/tests.rs | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/src/vec.rs b/src/vec.rs index c28facf..44aa9a8 100644 --- a/src/vec.rs +++ b/src/vec.rs @@ -1128,6 +1128,13 @@ impl IntoIter { } } +impl Clone for IntoIter { + #[inline] + fn clone(&self) -> Self { + EcoVec::from(self.as_slice()).into_iter() + } +} + impl Iterator for IntoIter { type Item = T; diff --git a/tests/tests.rs b/tests/tests.rs index df02e28..f73c816 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -223,9 +223,13 @@ fn test_vec_into_iter() { let mut iter = first.into_iter(); assert_eq!(iter.len(), 3); assert_eq!(iter.next(), Some(v(2))); + let mut second_iter = iter.clone(); assert_eq!(iter.next_back(), Some(v(5))); assert_eq!(iter.as_slice(), [v(4)]); + assert_eq!(second_iter.next_back(), Some(v(5))); + assert_eq!(second_iter.as_slice(), [v(4)]); drop(iter); + drop(second_iter); } #[test]