@@ -33,6 +33,7 @@ module Streamly.Internal.Data.Array.Stream.Fold.Foreign
33 -- * Construction
33 -- * Construction
34 , fromFold
34 , fromFold
35 , fromParser
35 , fromParser
36 , fromArrayFold
37 , fromArrayFold
38 -- * Mapping
39 -- * Mapping
@@ -69,6 +70,8 @@ import qualified Streamly.Internal.Data.Array.Foreign as Array
69import qualified Streamly.Internal.Data.Fold as Fold
70import qualified Streamly.Internal.Data.Fold as Fold
70import qualified Streamly.Internal.Data.Parser.ParserD as ParserD
71import qualified Streamly.Internal.Data.Parser.ParserD as ParserD
71import qualified Streamly.Internal.Data.Parser.ParserD.Type as ParserD
72import qualified Streamly.Internal.Data.Parser.ParserD.Type as ParserD
73+import qualified Streamly.Internal.Data.Parser.ParserK.Type as ParserK
74+import qualified Streamly.Internal.Data.Parser as Parser
73import Prelude hiding (concatMap, take)
76import Prelude hiding (concatMap, take)
@@ -128,14 +131,14 @@ fromFold (Fold.Fold fstep finitial fextract) =
128 Fold.Partial fs1 ->
131 Fold.Partial fs1 ->
129 goArray SPEC next fs1
132 goArray SPEC next fs1
131−-- | Convert an element 'Parser' into an array stream fold. If the parser fails
134+-- | Convert an element 'ParserD.Parser' into an array stream fold. If the
132−-- the fold would throw an exception.
135+-- parser fails the fold would throw an exception.
134-- /Pre-release/
137-- /Pre-release/
135−{-# INLINE fromParser #-}
138+{-# INLINE fromParserD #-}
136−fromParser :: forall m a b. (MonadIO m, Storable a) =>
139+fromParserD :: forall m a b. (MonadIO m, Storable a) =>
137 ParserD.Parser m a b -> Fold m a b
140 ParserD.Parser m a b -> Fold m a b
138−fromParser (ParserD.Parser step1 initial1 extract1) =
141+fromParserD (ParserD.Parser step1 initial1 extract1) =
139 Fold (ParserD.Parser step initial1 extract1)
142 Fold (ParserD.Parser step initial1 extract1)
@@ -170,6 +173,15 @@ fromParser (ParserD.Parser step1 initial1 extract1) =
170 partial arrRem cur next elemSize Continue n fs1
173 partial arrRem cur next elemSize Continue n fs1
171 Error err -> return $ Error err
174 Error err -> return $ Error err
176+-- | Convert an element 'Parser.Parser' into an array stream fold. If the parser
177+-- fails the fold would throw an exception.
180+{-# INLINE fromParser #-}
181+fromParser :: forall m a b. (MonadThrow m, MonadIO m, Storable a) =>
182+ Parser.Parser m a b -> Fold m a b
183+fromParser = fromParserD . ParserK.fromParserK
173-- | Adapt an array stream fold.
185-- | Adapt an array stream fold.
175-- /Pre-release/
187-- /Pre-release/