@@ -20,6 +20,7 @@ use crate::toast::{Toast, Toasty};
20
20
use crate :: { layout, pg_sys, varlena} ;
21
21
use bitvec:: ptr:: { self as bitptr, BitPtr , BitPtrError , Const , Mut } ;
22
22
use bitvec:: slice:: { self as bitslice, BitSlice } ;
23
+ use core:: iter:: { ExactSizeIterator , FusedIterator } ;
23
24
use core:: marker:: PhantomData ;
24
25
use core:: ptr:: { self , NonNull } ;
25
26
use core:: { ffi, mem, slice} ;
@@ -257,6 +258,20 @@ where
257
258
}
258
259
}
259
260
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
+
260
275
/**
261
276
An aligned, dereferenceable `NonNull<ArrayType>` with low-level accessors.
262
277
0 commit comments