on master help sign in
Remove foreign array dependency on IsStream type
ee5e4d1Harendra Kumar
src/Streamly/Internal/Data/Array/Foreign.hs+1−2
@@ -144,7 +144,6 @@ import qualified Streamly.Internal.Data.Array.Foreign.Mut as MA
144import qualified Streamly.Internal.Data.Array.Foreign.Type as A
144import qualified Streamly.Internal.Data.Array.Foreign.Type as A
145import qualified Streamly.Internal.Data.Fold as FL
145import qualified Streamly.Internal.Data.Fold as FL
146import qualified Streamly.Internal.Data.Producer as Producer
146import qualified Streamly.Internal.Data.Producer as Producer
147−import qualified Streamly.Internal.Data.Stream.IsStream.Type as IsStream
148import qualified Streamly.Internal.Data.Stream.Prelude as P
147import qualified Streamly.Internal.Data.Stream.Prelude as P
149import qualified Streamly.Internal.Data.Stream.StreamD as D
148import qualified Streamly.Internal.Data.Stream.StreamD as D
150import qualified Streamly.Internal.Data.Unfold as Unfold
149import qualified Streamly.Internal.Data.Unfold as Unfold
@@ -393,7 +392,7 @@ getSliceUnsafe index len (Array contents start e) =
393splitOn :: (Monad m, Storable a) =>
392splitOn :: (Monad m, Storable a) =>
394 (a -> Bool) -> Array a -> SerialT m (Array a)
393 (a -> Bool) -> Array a -> SerialT m (Array a)
395splitOn predicate arr =
394splitOn predicate arr =
396− IsStream.fromStreamD
395+ SerialT $ D.toStreamK
397 $ fmap (\(i, len) -> getSliceUnsafe i len arr)
396 $ fmap (\(i, len) -> getSliceUnsafe i len arr)
398 $ D.sliceOnSuffix predicate (A.toStreamD arr)
397 $ D.sliceOnSuffix predicate (A.toStreamD arr)
399
398
src/Streamly/Internal/Data/Array/Stream/Mut/Foreign.hs+4−5
@@ -35,8 +35,6 @@ import Foreign.Storable (Storable(..))
35import Streamly.Internal.Data.Array.Foreign.Mut.Type (Array(..))
35import Streamly.Internal.Data.Array.Foreign.Mut.Type (Array(..))
36import Streamly.Internal.Data.Fold.Type (Fold(..))
36import Streamly.Internal.Data.Fold.Type (Fold(..))
37import Streamly.Internal.Data.Stream.Serial (SerialT(..))
37import Streamly.Internal.Data.Stream.Serial (SerialT(..))
38−import Streamly.Internal.Data.Stream.IsStream.Type
39− (IsStream, fromStreamD, toStreamD)
40import Streamly.Internal.Data.Tuple.Strict (Tuple'(..))
38import Streamly.Internal.Data.Tuple.Strict (Tuple'(..))
41
39
42import qualified Streamly.Internal.Data.Array.Foreign.Mut.Type as MArray
40import qualified Streamly.Internal.Data.Array.Foreign.Mut.Type as MArray
@@ -53,9 +51,10 @@ import qualified Streamly.Internal.Data.Parser.ParserD as ParserD
53--
51--
54-- /Pre-release/
52-- /Pre-release/
55{-# INLINE arraysOf #-}
53{-# INLINE arraysOf #-}
56−arraysOf :: (IsStream t, MonadIO m, Storable a)
54+arraysOf :: (MonadIO m, Storable a)
57− => Int -> t m a -> t m (Array a)
55+ => Int -> SerialT m a -> SerialT m (Array a)
58−arraysOf n = fromStreamD . MArray.arraysOf n . toStreamD
56+arraysOf n (SerialT xs) =
57+ SerialT $ D.toStreamK $ MArray.arraysOf n $ D.fromStreamK xs
59
58
60-------------------------------------------------------------------------------
59-------------------------------------------------------------------------------
61-- Compact
60-- Compact