From dd24786e678032c3c52f89f4e80fd7ae29ed1a3b Mon Sep 17 00:00:00 2001 From: Folkert Date: Fri, 20 Aug 2021 20:45:21 +0200 Subject: [PATCH] implement into iterator --- roc_std/src/lib.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/roc_std/src/lib.rs b/roc_std/src/lib.rs index 7a43488882..16d1eb4660 100644 --- a/roc_std/src/lib.rs +++ b/roc_std/src/lib.rs @@ -311,6 +311,25 @@ impl<'a, T> IntoIterator for &'a RocList { } } +impl IntoIterator for RocList { + type Item = T; + + type IntoIter = IntoIter; + + fn into_iter(self) -> Self::IntoIter { + let remaining = self.len(); + + let buf = unsafe { NonNull::new_unchecked(self.elements as _) }; + let ptr = self.elements; + + IntoIter { + buf, + ptr, + remaining, + } + } +} + use core::ptr::NonNull; pub struct IntoIter {