@@ -20,6 +20,7 @@ use crate::toast::{Toast, Toasty};
2020use crate :: { layout, pg_sys, varlena} ;
2121use bitvec:: ptr:: { self as bitptr, BitPtr , BitPtrError , Const , Mut } ;
2222use bitvec:: slice:: { self as bitslice, BitSlice } ;
23+ use core:: iter:: { ExactSizeIterator , FusedIterator } ;
2324use core:: marker:: PhantomData ;
2425use core:: ptr:: { self , NonNull } ;
2526use core:: { ffi, mem, slice} ;
@@ -257,6 +258,20 @@ where
257258 }
258259}
259260
261+ impl < ' arr , ' mcx , T > IntoIterator for & ' arr FlatArray < ' mcx , T >
262+ where
263+ T : ?Sized + BorrowDatum ,
264+ {
265+ type IntoIter = ArrayIter < ' arr , T > ;
266+ type Item = Nullable < & ' arr T > ;
267+ fn into_iter ( self ) -> Self :: IntoIter {
268+ self . iter ( )
269+ }
270+ }
271+
272+ impl < ' arr , T > ExactSizeIterator for ArrayIter < ' arr , T > where T : ?Sized + BorrowDatum { }
273+ impl < ' arr , T > FusedIterator for ArrayIter < ' arr , T > where T : ?Sized + BorrowDatum { }
274+
260275/**
261276An aligned, dereferenceable `NonNull<ArrayType>` with low-level accessors.
262277
0 commit comments