packages feed

conduit 1.2.7 → 1.2.8

raw patch · 3 files changed

+54/−1 lines, 3 filesdep +monad-controlPVP ok

version bump matches the API change (PVP)

Dependencies added: monad-control

API changes (from Hackage documentation)

+ Data.Conduit: (.|) :: Monad m => ConduitM a b m () -> ConduitM b c m r -> ConduitM a c m r
+ Data.Conduit: runConduitPure :: ConduitM () Void Identity r -> r
+ Data.Conduit: runConduitRes :: MonadBaseControl IO m => ConduitM () Void (ResourceT m) r -> m r

Files

ChangeLog.md view
@@ -1,3 +1,11 @@+## 1.2.8++* Implement+  [the reskinning idea](http://www.snoyman.com/blog/2016/09/proposed-conduit-reskin):+    * `.|`+    * `runConduitPure`+    * `runConduitRes`+ ## 1.2.7  * Expose yieldM for ConduitM [#270](https://github.com/snoyberg/conduit/pull/270)
Data/Conduit.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE RankNTypes #-} {-# LANGUAGE DeriveFunctor #-}+{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE Safe #-} -- | If this is your first time with conduit, you should probably start with -- the tutorial:@@ -12,6 +13,7 @@     , Sink     , ConduitM       -- ** Connect/fuse operators+    , (.|)     , ($$)     , ($=)     , (=$)@@ -30,6 +32,8 @@     , yieldM     , leftover     , runConduit+    , runConduitPure+    , runConduitRes        -- ** Finalization     , bracketP@@ -97,6 +101,10 @@     ) where  import Data.Conduit.Internal.Conduit+import Data.Void (Void)+import Data.Functor.Identity (Identity, runIdentity)+import Control.Monad.Trans.Resource (ResourceT, runResourceT)+import Control.Monad.Trans.Control (MonadBaseControl)  -- | Named function synonym for '$$'. --@@ -109,3 +117,39 @@ -- Since 1.2.3 fuse :: Monad m => Conduit a m b -> ConduitM b c m r -> ConduitM a c m r fuse = (=$=)++infixr 2 .|+-- | Combine two @Conduit@s together into a new @Conduit@ (aka 'fuse').+--+-- Output from the upstream (left) conduit will be fed into the+-- downstream (right) conduit. Processing will terminate when+-- downstream (right) returns. Leftover data returned from the right+-- @Conduit@ will be discarded.+--+-- @since 1.2.8+(.|) :: Monad m+     => ConduitM a b m () -- ^ upstream+     -> ConduitM b c m r -- ^ downstream+     -> ConduitM a c m r+(.|) = fuse+{-# INLINE (.|) #-}++-- | Run a pure pipeline until processing completes, i.e. a pipeline+-- with @Identity@ as the base monad. This is equivalient to+-- @runIdentity . runConduit@.+--+-- @since 1.2.8+runConduitPure :: ConduitM () Void Identity r -> r+runConduitPure = runIdentity . runConduit+{-# INLINE runConduitPure #-}++-- | Run a pipeline which acquires resources with @ResourceT@, and+-- then run the @ResourceT@ transformer. This is equivalent to+-- @runResourceT . runConduit@.+--+-- @since 1.2.8+runConduitRes :: MonadBaseControl IO m+              => ConduitM () Void (ResourceT m) r+              -> m r+runConduitRes = runResourceT . runConduit+{-# INLINE runConduitRes #-}
conduit.cabal view
@@ -1,5 +1,5 @@ Name:                conduit-Version:             1.2.7+Version:             1.2.8 Synopsis:            Streaming data processing library. description:     Hackage documentation generation is not reliable. For up to date documentation, please see: <http://www.stackage.org/package/conduit>.@@ -35,6 +35,7 @@                      , transformers             >= 0.2.2                      , mtl                      , mmorph+                     , monad-control   if !impl(ghc>=7.9)     build-depends:   void                     >= 0.5.5   ghc-options:         -Wall