streaming-conduit 0.1.2.2 → 0.1.3.0
raw patch · 4 files changed
+22/−4 lines, 4 filesdep ~streaming-bytestringnew-uploaderPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: streaming-bytestring
API changes (from Hackage documentation)
+ Streaming.Conduit: sinkBStream :: Monad m => Consumer ByteString m r -> ByteString m () -> m r
+ Streaming.Conduit: sinkStream :: Monad m => Consumer i m r -> Stream (Of i) m () -> m r
- Streaming.Conduit: asConduit :: (Monad m) => (Stream (Of i) m () -> Stream (Of o) m r) -> ConduitM i o m r
+ Streaming.Conduit: asConduit :: Monad m => (Stream (Of i) m () -> Stream (Of o) m r) -> ConduitM i o m r
- Streaming.Conduit: asStream :: (Monad m) => Conduit i m o -> Stream (Of i) m () -> Stream (Of o) m ()
+ Streaming.Conduit: asStream :: Monad m => Conduit i m o -> Stream (Of i) m () -> Stream (Of o) m ()
- Streaming.Conduit: fromBStream :: (Monad m) => ByteString m r -> ConduitM i ByteString m r
+ Streaming.Conduit: fromBStream :: Monad m => ByteString m r -> ConduitM i ByteString m r
- Streaming.Conduit: fromBStreamProducer :: (Monad m) => ByteString m r -> Producer m ByteString
+ Streaming.Conduit: fromBStreamProducer :: Monad m => ByteString m r -> Producer m ByteString
- Streaming.Conduit: fromStream :: (Monad m) => Stream (Of o) m r -> ConduitM i o m r
+ Streaming.Conduit: fromStream :: Monad m => Stream (Of o) m r -> ConduitM i o m r
- Streaming.Conduit: fromStreamProducer :: (Monad m) => Stream (Of a) m r -> Producer m a
+ Streaming.Conduit: fromStreamProducer :: Monad m => Stream (Of a) m r -> Producer m a
- Streaming.Conduit: fromStreamSource :: (Monad m) => Stream (Of a) m r -> Source m a
+ Streaming.Conduit: fromStreamSource :: Monad m => Stream (Of a) m r -> Source m a
- Streaming.Conduit: toBStream :: (Monad m) => Producer m ByteString -> ByteString m ()
+ Streaming.Conduit: toBStream :: Monad m => Producer m ByteString -> ByteString m ()
- Streaming.Conduit: toStream :: (Monad m) => Producer m o -> Stream (Of o) m ()
+ Streaming.Conduit: toStream :: Monad m => Producer m o -> Stream (Of o) m ()
Files
- ChangeLog.md +4/−0
- src/Streaming/Conduit.hs +14/−2
- streaming-conduit.cabal +2/−2
- test/conversions.hs +2/−0
ChangeLog.md view
@@ -1,5 +1,9 @@ # Revision history for streaming-conduit +## 0.1.3.0 -- 2023-05-13++* Support `streaming-bytestring-0.3`+ ## 0.1.2.2 -- 2018-02-11 * Add support for conduit-1.3.0.
src/Streaming/Conduit.hs view
@@ -33,15 +33,17 @@ -- * Converting from Conduits , toStream , asStream+ , sinkStream -- ** ByteString support , toBStream+ , sinkBStream ) where import Control.Monad (join, void) import Control.Monad.Trans.Class (lift) import Data.ByteString (ByteString) import qualified Data.ByteString.Streaming as B-import Data.Conduit (Conduit, ConduitM, Producer, Source,+import Data.Conduit (Conduit, ConduitM, Producer, Source, Consumer, await, runConduit, transPipe, (.|)) import qualified Data.Conduit.List as CL import Streaming (Of, Stream)@@ -70,7 +72,7 @@ -- | A more specialised variant of 'fromBStream'. fromBStreamProducer :: (Monad m) => B.ByteString m r -> Producer m ByteString-fromBStreamProducer = CL.unfoldM B.unconsChunk . void+fromBStreamProducer = CL.unfoldEitherM B.unconsChunk . void -- | Convert a 'Producer' to a 'Stream'. Subject to fusion. --@@ -89,6 +91,16 @@ -- fusion. asStream :: (Monad m) => Conduit i m o -> Stream (Of i) m () -> Stream (Of o) m () asStream cnd stream = toStream (fromStream stream .| cnd)++-- | Treat a 'Consumer' as a function which consumes a 'Stream'.+-- Subject to fusion.+sinkStream :: (Monad m) => Consumer i m r -> Stream (Of i) m () -> m r+sinkStream cns stream = runConduit (fromStream stream .| cns)++-- | Treat a 'Consumer' as a function which consumes a 'B.ByteString'.+-- Subject to fusion.+sinkBStream :: (Monad m) => Consumer ByteString m r -> B.ByteString m () -> m r+sinkBStream cns stream = runConduit (fromBStream stream .| cns) -- | Treat a function between 'Stream's as a 'Conduit'. May be -- subject to fusion.
streaming-conduit.cabal view
@@ -1,5 +1,5 @@ name: streaming-conduit-version: 0.1.2.2+version: 0.1.3.0 synopsis: Bidirectional support between the streaming and conduit libraries description: Allow interoperability between the streaming and conduit data streaming ecosystems. license: MIT@@ -23,7 +23,7 @@ , bytestring , conduit >= 1.2.11 && < 1.4 , streaming >= 0.1.3.0 && < 0.3- , streaming-bytestring == 0.1.*+ , streaming-bytestring >= 0.3 && < 0.4 , transformers >= 0.2 hs-source-dirs: src default-language: Haskell2010
test/conversions.hs view
@@ -40,6 +40,8 @@ testPipeline (\xs f -> streamList . S.map f $ toStream (C.sourceList xs)) prop "asStream" $ testPipeline (\xs f -> streamList . asStream (C.map f) $ S.each xs)+ prop "sinkStream" $+ testPipeline (\xs f -> runIdentity $ sinkStream C.consume $ S.map f $ S.each xs) conduitList :: C.Source Identity a -> [a] conduitList = runIdentity . C.sourceToList