conduit 1.3.1.2 → 1.3.2
raw patch · 5 files changed
+26/−3 lines, 5 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Conduit: askUnliftIO :: MonadUnliftIO m => m (UnliftIO m)
+ Data.Conduit: mapInputM :: Monad m => (i1 -> m i2) -> (i2 -> m (Maybe i1)) -> ConduitT i2 o m r -> ConduitT i1 o m r
Files
- ChangeLog.md +4/−0
- conduit.cabal +1/−1
- src/Data/Conduit.hs +1/−0
- src/Data/Conduit/Internal.hs +3/−2
- src/Data/Conduit/Internal/Conduit.hs +17/−0
ChangeLog.md view
@@ -1,5 +1,9 @@ # ChangeLog for conduit +## 1.3.2++* Add `mapInputM` [#435](https://github.com/snoyberg/conduit/pull/435)+ ## 1.3.1.2 * More eagerly emit groups in `chunksOf` [#427](https://github.com/snoyberg/conduit/pull/427)
conduit.cabal view
@@ -1,5 +1,5 @@ Name: conduit-Version: 1.3.1.2+Version: 1.3.2 Synopsis: Streaming data processing library. description: `conduit` is a solution to the streaming data problem, allowing for production,
src/Data/Conduit.hs view
@@ -57,6 +57,7 @@ , mapOutput , mapOutputMaybe , mapInput+ , mapInputM , mergeSource , passthroughSink , sourceToList
src/Data/Conduit/Internal.hs view
@@ -11,8 +11,9 @@ import Data.Conduit.Internal.Conduit hiding (await, awaitForever, bracketP,- leftover, mapInput, mapOutput,- mapOutputMaybe, transPipe,+ leftover, mapInput, mapInputM,+ mapOutput, mapOutputMaybe,+ transPipe, yield, yieldM) import Data.Conduit.Internal.Pipe import Data.Conduit.Internal.Fusion
src/Data/Conduit/Internal/Conduit.hs view
@@ -72,6 +72,7 @@ , Data.Conduit.Internal.Conduit.mapOutput , Data.Conduit.Internal.Conduit.mapOutputMaybe , Data.Conduit.Internal.Conduit.mapInput+ , Data.Conduit.Internal.Conduit.mapInputM , zipSinks , zipSources , zipSourcesApp@@ -987,6 +988,22 @@ go (Done r) = rest r go (PipeM mp) = PipeM $ liftM go mp go (Leftover p i) = maybe id (flip Leftover) (f' i) (go p)+ in go (c0 Done)++-- | Apply a monadic action to all the input values of a @ConduitT@.+--+-- Since 1.3.2+mapInputM :: Monad m+ => (i1 -> m i2) -- ^ map initial input to new input+ -> (i2 -> m (Maybe i1)) -- ^ map new leftovers to initial leftovers+ -> ConduitT i2 o m r+ -> ConduitT i1 o m r+mapInputM f f' (ConduitT c0) = ConduitT $ \rest -> let+ go (HaveOutput p o) = HaveOutput (go p) o+ go (NeedInput p c) = NeedInput (\i -> PipeM $ go . p <$> f i) (go . c)+ go (Done r) = rest r+ go (PipeM mp) = PipeM $ fmap go mp+ go (Leftover p i) = PipeM $ (\x -> maybe id (flip Leftover) x (go p)) <$> f' i in go (c0 Done) -- | The connect-and-resume operator. This does not close the @Source@, but