packages feed

conduit 1.3.5 → 1.3.6

raw patch · 4 files changed

+13/−3 lines, 4 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Conduit: class MonadTrans (t :: Type -> Type -> Type -> Type)
+ Conduit: class forall (m :: Type -> Type). Monad m => Monad t m => MonadTrans (t :: Type -> Type -> Type -> Type)
- Conduit: data Acquire a
+ Conduit: data () => Acquire a
- Conduit: data ReleaseType
+ Conduit: data () => ReleaseType
- Conduit: data ResourceT (m :: Type -> Type) a
+ Conduit: data () => ResourceT (m :: Type -> Type) a
- Conduit: newtype Identity a
+ Conduit: newtype () => Identity a
- Conduit: throwM :: (MonadThrow m, Exception e) => e -> m a
+ Conduit: throwM :: (MonadThrow m, HasCallStack, Exception e) => e -> m a
- Data.Conduit: data Void
+ Data.Conduit: data () => Void

Files

ChangeLog.md view
@@ -1,5 +1,9 @@ # ChangeLog for conduit +## 1.3.6++* Avoid dropping upstream items in `mergeSource` [#513](https://github.com/snoyberg/conduit/pull/513)+ ## 1.3.5  * Add `groupOn`
conduit.cabal view
@@ -1,5 +1,5 @@ Name:                conduit-Version:             1.3.5+Version:             1.3.6 Synopsis:            Streaming data processing library. description:     `conduit` is a solution to the streaming data problem, allowing for production,
src/Data/Conduit/Internal/Conduit.hs view
@@ -613,7 +613,7 @@         go a = do           (src1, mi) <- lift $ src0 $$++ await           case mi of-            Nothing -> return ()+            Nothing -> leftover a             Just i  -> yield (i, a) >> loop src1  
test/main.hs view
@@ -32,7 +32,7 @@ import Control.Monad.Trans.Writer (execWriter, tell, runWriterT) import Control.Monad.Trans.State (evalStateT, get, put) import qualified Control.Monad.Writer as W-import Control.Applicative (pure, (<$>), (<*>))+import Control.Applicative (pure, (<$>), (<*>), liftA2) import qualified Control.Monad.Catch as Catch import Data.Functor.Identity (Identity,runIdentity) import Control.Monad (forever, void)@@ -704,6 +704,12 @@                 withShortAlphaIndex = CI.mergeSource (CL.sourceList ["A", "B", "C"])             output <- runConduit $ src .| withShortAlphaIndex .| CL.consume             output `shouldBe` [("A", 1), ("B", 2), ("C", 3)]+        it "does not drop upstream items" $ do+            let num = CL.sourceList [1 .. 10 :: Int]+            let chr = CL.sourceList ['a' .. 'c']+            (output, remainder) <- runConduit $ num .| liftA2 (,) (CI.mergeSource chr .| CL.consume) CL.consume+            output `shouldBe` [('a', 1), ('b', 2), ('c', 3)]+            remainder `shouldBe` [4 .. 10]      describe "passthroughSink" $ do         it "works" $ do