on master help sign in
Fix sliceSepByMax.
commit12ca6eeba5a8304116075a21863a9a305be566ae authorPranay Sashank <pranaysashank@composewell.com> dateMon 18 May 2020, 11:55 (6 years ago) parentdf6d8e0
1 file changed+11−9
src/Streamly/Internal/Data/Parser/ParserD.hs+11−9
src/Streamly/Internal/Data/Parser/ParserD.hs+11−9
@@ -505,15 +505,17 @@ sliceSepByMax predicate cnt (Fold fstep finitial fextract) =
505505 where
506506
507507 initial = Tuple' 0 <$> finitial
508− step (Tuple' i r) a = do
509− res <- fstep r a
510− let i1 = i + 1
511− s1 = Tuple' i1 res
512− if not (predicate a) && i1 < cnt
513− then return $ Yield 0 s1
514− else do
515− b <- fextract res
516− return $ Stop 0 b
508+ step (Tuple' i r) a
509+ | not (predicate a) = do
510+ res <- fstep r a
511+ let i1 = i + 1
512+ s1 = Tuple' i1 res
513+ if i1 < cnt
514+ then return $ Yield 0 s1
515+ else do
516+ b <- fextract res
517+ return $ Stop 0 b
518+ | otherwise = Stop 0 <$> fextract r
517519 extract (Tuple' _ r) = fextract r
518520
519521-- | See 'Streamly.Internal.Data.Parser.wordBy'.