packages feed

conduit 1.3.3 → 1.3.4

raw patch · 4 files changed

+24/−6 lines, 4 filesdep ~basePVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: base

API changes (from Hackage documentation)

+ Data.Conduit.Combinators: foldWhile :: Monad m => (a -> s -> Either e s) -> s -> ConduitT a o m (Either e s)
- Conduit: mkAcquire :: () => IO a -> (a -> IO ()) -> Acquire a
+ Conduit: mkAcquire :: IO a -> (a -> IO ()) -> Acquire a
- Conduit: mkAcquireType :: () => IO a -> (a -> ReleaseType -> IO ()) -> Acquire a
+ Conduit: mkAcquireType :: IO a -> (a -> ReleaseType -> IO ()) -> Acquire a
- Conduit: type family PrimState (m :: Type -> Type) :: Type;
+ Conduit: type family PrimState (m :: Type -> Type);

Files

ChangeLog.md view
@@ -1,5 +1,9 @@ # ChangeLog for conduit +## 1.3.4++* Add `foldWhile` [#453](https://github.com/snoyberg/conduit/issues/453) [#456](https://github.com/snoyberg/conduit/pull/456).+ ## 1.3.3  * Add `uncons`, `unconsM`, `unconsEither`, `unconsEitherM`.
conduit.cabal view
@@ -1,5 +1,5 @@ Name:                conduit-Version:             1.3.3+Version:             1.3.4 Synopsis:            Streaming data processing library. description:     `conduit` is a solution to the streaming data problem, allowing for production,
src/Data/Conduit/Combinators.hs view
@@ -62,6 +62,7 @@     , foldlE     , foldMap     , foldMapE+    , foldWhile     , all     , allE     , any@@ -1754,6 +1755,19 @@         go a = either (return $!) (\(s', b) -> yield b >> loop s') $ f a s {-# INLINE mapAccumWhileC #-} STREAMING(mapAccumWhile, mapAccumWhileC, mapAccumWhileS, f s)+++-- | Specialized version of 'mapAccumWhile' that does not provide values downstream.+--+-- @since 1.3.4+foldWhile :: Monad m => (a -> s -> Either e s) -> s -> ConduitT a o m (Either e s)+foldWhile f = loop+  where+    loop !s = await >>= maybe (return $ Right s) go+      where+        go a = either (return . Left $!) loop $ f a s+{-# INLINE foldWhile #-}+  -- | 'concatMap' with an accumulator. --
src/Data/Conduit/Internal/Conduit.hs view
@@ -329,7 +329,7 @@  sourceToPipe :: Monad m => Source m o -> Pipe l i o u m () sourceToPipe =-    go . flip unConduitT Done+    go . (`unConduitT` Done)   where     go (HaveOutput p o) = HaveOutput (go p) o     go (NeedInput _ c) = go $ c ()@@ -339,7 +339,7 @@  sinkToPipe :: Monad m => Sink i m r -> Pipe l i o u m r sinkToPipe =-    go . injectLeftovers . flip unConduitT Done+    go . injectLeftovers . (`unConduitT` Done)   where     go (HaveOutput _ o) = absurd o     go (NeedInput p c) = NeedInput (go . p) (const $ go $ c ())@@ -349,7 +349,7 @@  conduitToPipe :: Monad m => Conduit i m o -> Pipe l i o u m () conduitToPipe =-    go . injectLeftovers . flip unConduitT Done+    go . injectLeftovers . (`unConduitT` Done)   where     go (HaveOutput p o) = HaveOutput (go p) o     go (NeedInput p c) = NeedInput (go . p) (const $ go $ c ())@@ -402,7 +402,7 @@ catchC (ConduitT p0) onErr = ConduitT $ \rest -> let     go (Done r) = rest r     go (PipeM mp) = PipeM $ withRunInIO $ \run -> E.catch (run (liftM go mp))-        (return . flip unConduitT rest . onErr)+        (return . (`unConduitT`rest) . onErr)     go (Leftover p i) = Leftover (go p) i     go (NeedInput x y) = NeedInput (go . x) (go . y)     go (HaveOutput p o) = HaveOutput (go p) o@@ -694,7 +694,7 @@ -- Since 1.2.6 sourceToList :: Monad m => Source m a -> m [a] sourceToList =-    go . flip unConduitT Done+    go . (`unConduitT` Done)   where     go (Done _) = return []     go (HaveOutput src x) = liftM (x:) (go src)