From 59856f948ef017477f8b6d43ffa9af70011c9c50 Mon Sep 17 00:00:00 2001 From: Matt Brubeck Date: Wed, 15 Jan 2025 15:33:00 -0800 Subject: [PATCH] Impl Send/Sync for IntoIter Closes #367. --- src/lib.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index e0f7328..37c2123 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -500,6 +500,11 @@ pub struct IntoIter { _marker: PhantomData, } +// SAFETY: IntoIter has unique ownership of its contents. Sending (or sharing) an `IntoIter` +// is equivalent to sending (or sharing) a `SmallVec`. +unsafe impl Send for IntoIter where T: Send {} +unsafe impl Sync for IntoIter where T: Sync {} + impl IntoIter { #[inline] const fn is_zst() -> bool {