@@ -104,7 +104,6 @@ import Streamly.Internal.System.IO (unsafeInlineIO)
104import qualified Streamly.Internal.Data.Serialize.Type as Serialize
104import qualified Streamly.Internal.Data.Serialize.Type as Serialize
105import qualified Streamly.Internal.Data.MutByteArray.Type as MBA
105import qualified Streamly.Internal.Data.MutByteArray.Type as MBA
106import qualified Streamly.Internal.Data.MutArray as MA
106import qualified Streamly.Internal.Data.MutArray as MA
107−import qualified Streamly.Internal.Data.Array.Type as A
108import qualified Streamly.Internal.Data.Fold as FL
107import qualified Streamly.Internal.Data.Fold as FL
109import qualified Streamly.Internal.Data.Ring as RB
108import qualified Streamly.Internal.Data.Ring as RB
110import qualified Streamly.Internal.Data.Stream as D
109import qualified Streamly.Internal.Data.Stream as D
@@ -149,7 +148,7 @@ import Streamly.Internal.Data.Array.Type
149-- /Pre-release/
148-- /Pre-release/
150{-# INLINE null #-}
149{-# INLINE null #-}
151null :: Array a -> Bool
150null :: Array a -> Bool
152−null arr = A.byteLength arr == 0
151+null arr = byteLength arr == 0
154-- | Like 'getIndex' but indexes the array in reverse from the end.
153-- | Like 'getIndex' but indexes the array in reverse from the end.
@@ -185,7 +184,7 @@ writeLastN ::
185 (Storable a, Unbox a, MonadIO m) => Int -> Fold m a (Array a)
184 (Storable a, Unbox a, MonadIO m) => Int -> Fold m a (Array a)
186writeLastN n
185writeLastN n
187 | n <= 0 = fmap (const mempty) FL.drain
186 | n <= 0 = fmap (const mempty) FL.drain
188− | otherwise = A.unsafeFreeze <$> Fold step initial done done
187+ | otherwise = unsafeFreeze <$> Fold step initial done done
@@ -289,7 +288,7 @@ splitOn :: (Monad m, Unbox a) =>
289 (a -> Bool) -> Array a -> Stream m (Array a)
288 (a -> Bool) -> Array a -> Stream m (Array a)
290splitOn predicate arr =
289splitOn predicate arr =
291 fmap (\(i, len) -> getSliceUnsafe i len arr)
290 fmap (\(i, len) -> getSliceUnsafe i len arr)
292− $ D.indexOnSuffix predicate (A.read arr)
291+ $ D.indexOnSuffix predicate (read arr)
294{-# INLINE sliceIndexerFromLen #-}
293{-# INLINE sliceIndexerFromLen #-}
295sliceIndexerFromLen :: forall m a. (Monad m, Unbox a)
294sliceIndexerFromLen :: forall m a. (Monad m, Unbox a)
@@ -297,7 +296,7 @@ sliceIndexerFromLen :: forall m a. (Monad m, Unbox a)
297 -> Int -- ^ length of the slice
296 -> Int -- ^ length of the slice
298 -> Unfold m (Array a) (Int, Int)
297 -> Unfold m (Array a) (Int, Int)
299sliceIndexerFromLen from len =
298sliceIndexerFromLen from len =
300− Unfold.lmap A.unsafeThaw (MA.sliceIndexerFromLen from len)
299+ Unfold.lmap unsafeThaw (MA.sliceIndexerFromLen from len)
302{-# DEPRECATED genSlicesFromLen "Please use sliceIndexerFromLen instead." #-}
301{-# DEPRECATED genSlicesFromLen "Please use sliceIndexerFromLen instead." #-}
303genSlicesFromLen :: forall m a. (Monad m, Unbox a)
302genSlicesFromLen :: forall m a. (Monad m, Unbox a)
@@ -317,8 +316,8 @@ slicerFromLen :: forall m a. (Monad m, Unbox a)
317 -> Int -- ^ length of the slice
316 -> Int -- ^ length of the slice
318 -> Unfold m (Array a) (Array a)
317 -> Unfold m (Array a) (Array a)
319slicerFromLen from len =
318slicerFromLen from len =
320− fmap A.unsafeFreeze
319+ fmap unsafeFreeze
321− $ Unfold.lmap A.unsafeThaw (MA.slicerFromLen from len)
320+ $ Unfold.lmap unsafeThaw (MA.slicerFromLen from len)
323{-# DEPRECATED getSlicesFromLen "Please use slicerFromLen instead." #-}
322{-# DEPRECATED getSlicesFromLen "Please use slicerFromLen instead." #-}
324getSlicesFromLen :: forall m a. (Monad m, Unbox a)
323getSlicesFromLen :: forall m a. (Monad m, Unbox a)
@@ -367,7 +366,7 @@ getIndex i arr =
367indexReader :: (Monad m, Unbox a) => Stream m Int -> Unfold m (Array a) a
366indexReader :: (Monad m, Unbox a) => Stream m Int -> Unfold m (Array a) a
368indexReader m =
367indexReader m =
369 let unf = MA.indexReaderWith (return . unsafeInlineIO) m
368 let unf = MA.indexReaderWith (return . unsafeInlineIO) m
370− in Unfold.lmap A.unsafeThaw unf
369+ in Unfold.lmap unsafeThaw unf
372-- XXX DO NOT REMOVE, change the signature to use Stream instead of unfold
371-- XXX DO NOT REMOVE, change the signature to use Stream instead of unfold
373{-# DEPRECATED getIndices "Please use getIndices instead." #-}
372{-# DEPRECATED getIndices "Please use getIndices instead." #-}
@@ -407,7 +406,7 @@ indexReaderFromThenTo = undefined
407{-# INLINE runPipe #-}
406{-# INLINE runPipe #-}
408runPipe :: (MonadIO m, Unbox a, Unbox b)
407runPipe :: (MonadIO m, Unbox a, Unbox b)
409 => Pipe m a b -> Array a -> m (Array b)
408 => Pipe m a b -> Array a -> m (Array b)
410−runPipe f arr = P.runPipe (toArrayMinChunk (length arr)) $ f (A.read arr)
409+runPipe f arr = P.runPipe (toArrayMinChunk (length arr)) $ f (read arr)
413-- XXX For transformations that cannot change the number of elements e.g. "map"
412-- XXX For transformations that cannot change the number of elements e.g. "map"
@@ -421,7 +420,7 @@ runPipe f arr = P.runPipe (toArrayMinChunk (length arr)) $ f (A.read arr)
421streamTransform :: forall m a b. (MonadIO m, Unbox a, Unbox b)
420streamTransform :: forall m a b. (MonadIO m, Unbox a, Unbox b)
422 => (Stream m a -> Stream m b) -> Array a -> m (Array b)
421 => (Stream m a -> Stream m b) -> Array a -> m (Array b)
423streamTransform f arr =
422streamTransform f arr =
424− Stream.fold (A.writeWith (length arr)) $ f (A.read arr)
423+ Stream.fold (writeWith (length arr)) $ f (read arr)
426-------------------------------------------------------------------------------
425-------------------------------------------------------------------------------
@@ -455,7 +454,7 @@ asBytes = castUnsafe
456cast :: forall a b. (Unbox b) => Array a -> Maybe (Array b)
455cast :: forall a b. (Unbox b) => Array a -> Maybe (Array b)
457cast arr =
456cast arr =
458− let len = A.byteLength arr
457+ let len = byteLength arr
459 r = len `mod` SIZE_OF(b)
458 r = len `mod` SIZE_OF(b)
460 in if r /= 0
459 in if r /= 0
461 then Nothing
460 then Nothing
@@ -473,7 +472,7 @@ cast arr =
474asCStringUnsafe :: Array a -> (CString -> IO b) -> IO b
473asCStringUnsafe :: Array a -> (CString -> IO b) -> IO b
475asCStringUnsafe arr act = do
474asCStringUnsafe arr act = do
476− let arr1 = asBytes arr <> A.fromList [0]
475+ let arr1 = asBytes arr <> fromList [0]
477 -- asPtrUnsafe makes sure the array is pinned
476 -- asPtrUnsafe makes sure the array is pinned
478 asPtrUnsafe arr1 $ \ptr -> act (castPtr ptr)
477 asPtrUnsafe arr1 $ \ptr -> act (castPtr ptr)
@@ -488,14 +487,14 @@ asCStringUnsafe arr act = do
488-- /Pre-release/
487-- /Pre-release/
489{-# INLINE fold #-}
488{-# INLINE fold #-}
490fold :: forall m a b. (Monad m, Unbox a) => Fold m a b -> Array a -> m b
489fold :: forall m a b. (Monad m, Unbox a) => Fold m a b -> Array a -> m b
491−fold f arr = Stream.fold f (A.read arr)
490+fold f arr = Stream.fold f (read arr)
493-- | Fold an array using a stream fold operation.
492-- | Fold an array using a stream fold operation.
495-- /Pre-release/
494-- /Pre-release/
496{-# INLINE streamFold #-}
495{-# INLINE streamFold #-}
497streamFold :: (Monad m, Unbox a) => (Stream m a -> m b) -> Array a -> m b
496streamFold :: (Monad m, Unbox a) => (Stream m a -> m b) -> Array a -> m b
498−streamFold f arr = f (A.read arr)
497+streamFold f arr = f (read arr)
500--------------------------------------------------------------------------------
499--------------------------------------------------------------------------------
501-- Serialization
500-- Serialization