potoki-core 2.2.4 → 2.2.5
raw patch · 3 files changed
+14/−1 lines, 3 files
Files
- library/Potoki/Core/Transform.hs +1/−0
- library/Potoki/Core/Transform/Attoparsec.hs +12/−0
- potoki-core.cabal +1/−1
library/Potoki/Core/Transform.hs view
@@ -28,6 +28,7 @@ A.parseBytes, A.parseText, A.parseLineBytesConcurrently,+ A.parseNonEmptyLineBytesConcurrently, -- * Concurrency N.bufferize, N.concurrently,
library/Potoki/Core/Transform/Attoparsec.hs view
@@ -3,6 +3,7 @@ import Potoki.Core.Prelude hiding (take, takeWhile, filter, drop) import Potoki.Core.Types+import Potoki.Core.Transform.Basic import Potoki.Core.Transform.Concurrency import Potoki.Core.Transform.ByteString import qualified Potoki.Core.Fetch as A@@ -10,6 +11,7 @@ import qualified Data.Attoparsec.Text as L import qualified Data.Attoparsec.Types as M import qualified Acquire.Acquire as N+import qualified Data.ByteString as ByteString {-# INLINE mapWithParseResult #-}@@ -92,4 +94,14 @@ parseLineBytesConcurrently :: Int -> K.Parser a -> Transform ByteString (Either Text a) parseLineBytesConcurrently concurrency parser = extractLines >>> bufferize concurrency >>>+ concurrently concurrency (arr (mapLeft fromString . K.parseOnly parser))++{-|+Lift an Attoparsec ByteString parser to a transform,+which parses the lines concurrently.+-}+{-# INLINE parseNonEmptyLineBytesConcurrently #-}+parseNonEmptyLineBytesConcurrently :: Int -> K.Parser a -> Transform ByteString (Either Text a)+parseNonEmptyLineBytesConcurrently concurrency parser =+ extractLinesWithoutTrail >>> filter (not . ByteString.null) >>> bufferize concurrency >>> concurrently concurrency (arr (mapLeft fromString . K.parseOnly parser))
potoki-core.cabal view
@@ -1,7 +1,7 @@ name: potoki-core version:- 2.2.4+ 2.2.5 synopsis: Low-level components of "potoki" description: