conduit 0.4.1 → 0.4.1.1
raw patch · 4 files changed
+18/−16 lines, 4 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Data.Conduit: Done :: (Maybe i) -> !r -> Pipe i o m r
+ Data.Conduit: Done :: (Maybe i) -> r -> Pipe i o m r
- Data.Conduit: HaveOutput :: (Pipe i o m r) -> !Finalize m r -> !o -> Pipe i o m r
+ Data.Conduit: HaveOutput :: (Pipe i o m r) -> (Finalize m r) -> o -> Pipe i o m r
- Data.Conduit: NeedInput :: !i -> Pipe i o m r -> (Pipe i o m r) -> Pipe i o m r
+ Data.Conduit: NeedInput :: (i -> Pipe i o m r) -> (Pipe i o m r) -> Pipe i o m r
- Data.Conduit: PipeM :: !m (Pipe i o m r) -> !Finalize m r -> Pipe i o m r
+ Data.Conduit: PipeM :: (m (Pipe i o m r)) -> (Finalize m r) -> Pipe i o m r
- Data.Conduit.Binary: sinkHandle :: MonadResource m => Handle -> Sink ByteString m ()
+ Data.Conduit.Binary: sinkHandle :: MonadIO m => Handle -> Sink ByteString m ()
- Data.Conduit.Binary: sourceHandle :: MonadResource m => Handle -> Source m ByteString
+ Data.Conduit.Binary: sourceHandle :: MonadIO m => Handle -> Source m ByteString
- Data.Conduit.Internal: Done :: (Maybe i) -> !r -> Pipe i o m r
+ Data.Conduit.Internal: Done :: (Maybe i) -> r -> Pipe i o m r
- Data.Conduit.Internal: FinalizeM :: !m r -> Finalize m r
+ Data.Conduit.Internal: FinalizeM :: (m r) -> Finalize m r
- Data.Conduit.Internal: FinalizePure :: !r -> Finalize m r
+ Data.Conduit.Internal: FinalizePure :: r -> Finalize m r
- Data.Conduit.Internal: HaveOutput :: (Pipe i o m r) -> !Finalize m r -> !o -> Pipe i o m r
+ Data.Conduit.Internal: HaveOutput :: (Pipe i o m r) -> (Finalize m r) -> o -> Pipe i o m r
- Data.Conduit.Internal: NeedInput :: !i -> Pipe i o m r -> (Pipe i o m r) -> Pipe i o m r
+ Data.Conduit.Internal: NeedInput :: (i -> Pipe i o m r) -> (Pipe i o m r) -> Pipe i o m r
- Data.Conduit.Internal: PipeM :: !m (Pipe i o m r) -> !Finalize m r -> Pipe i o m r
+ Data.Conduit.Internal: PipeM :: (m (Pipe i o m r)) -> (Finalize m r) -> Pipe i o m r
Files
- Data/Conduit/Binary.hs +3/−4
- Data/Conduit/Internal.hs +7/−6
- Data/Conduit/Util/Conduit.hs +7/−5
- conduit.cabal +1/−1
Data/Conduit/Binary.hs view
@@ -23,10 +23,9 @@ import qualified Data.ByteString as S import qualified Data.ByteString.Lazy as L import Data.Conduit-import qualified Data.Conduit.List as CL import Control.Exception (assert) import Control.Monad (liftM)-import Control.Monad.IO.Class (liftIO)+import Control.Monad.IO.Class (liftIO, MonadIO) import qualified System.IO as IO import Control.Monad.Trans.Resource (allocate, release) import Data.Word (Word8)@@ -70,7 +69,7 @@ -- completes, since it did not acquire the @Handle@ in the first place. -- -- Since 0.3.0-sourceHandle :: MonadResource m+sourceHandle :: MonadIO m => IO.Handle -> Source m S.ByteString sourceHandle h =@@ -106,7 +105,7 @@ -- will /not/ automatically close the @Handle@ when processing completes. -- -- Since 0.3.0-sinkHandle :: MonadResource m+sinkHandle :: MonadIO m => IO.Handle -> Sink S.ByteString m () sinkHandle h =
Data/Conduit/Internal.hs view
@@ -1,4 +1,5 @@ {-# OPTIONS_HADDOCK not-home #-}+{-# OPTIONS_GHC -O2 #-} -- necessary to avoid some space leaks {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-}@@ -44,8 +45,8 @@ -- actions we have to track. -- -- Since 0.4.1-data Finalize m r = FinalizePure !r- | FinalizeM !(m r)+data Finalize m r = FinalizePure r+ | FinalizeM (m r) instance Monad m => Functor (Finalize m) where fmap f (FinalizePure r) = FinalizePure (f r)@@ -104,23 +105,23 @@ -- | Provide new output to be sent downstream. This constructor has three -- fields: the next @Pipe@ to be used, an early-closed function, and the -- output value.- HaveOutput (Pipe i o m r) !(Finalize m r) !o+ HaveOutput (Pipe i o m r) (Finalize m r) o -- | Request more input from upstream. The first field takes a new input -- value and provides a new @Pipe@. The second is for early termination. It -- gives a new @Pipe@ which takes no input from upstream. This allows a -- @Pipe@ to provide a final stream of output values after no more input is -- available from upstream.- | NeedInput !(i -> Pipe i o m r) (Pipe i o m r)+ | NeedInput (i -> Pipe i o m r) (Pipe i o m r) -- | Processing with this @Pipe@ is complete. Provides an optional leftover -- input value and and result.- | Done (Maybe i) !r+ | Done (Maybe i) r -- | Require running of a monadic action to get the next @Pipe@. Second -- field is an early cleanup function. Technically, this second field -- could be skipped, but doing so would require extra operations to be -- performed in some cases. For example, for a @Pipe@ pulling data from a -- file, it may be forced to pull an extra, unneeded chunk before closing -- the @Handle@.- | PipeM !(m (Pipe i o m r)) !(Finalize m r)+ | PipeM (m (Pipe i o m r)) (Finalize m r) -- | A @Pipe@ which provides a stream of output values, without consuming any -- input. The input parameter is set to @Void@ to indicate that this @Pipe@
Data/Conduit/Util/Conduit.hs view
@@ -172,8 +172,10 @@ -- -- Since 0.3.0 sequence :: Monad m => Sink input m output -> Conduit input m output-sequence sink = do- x <- hasInput- when x $ do- sinkToPipe sink >>= yield- sequence sink+sequence sink = self+ where+ self = do+ x <- hasInput+ when x $ do+ sinkToPipe sink >>= yield+ self
conduit.cabal view
@@ -1,5 +1,5 @@ Name: conduit-Version: 0.4.1+Version: 0.4.1.1 Synopsis: Streaming data processing library. Description: Conduits are an approach to the streaming data problem. It is meant as an alternative to enumerators\/iterators, hoping to address the same issues with different trade-offs based on real-world experience with enumerators. For more information, see <http://www.yesodweb.com/book/conduit>.