on master help sign in
Add run functions for individual stream types
commit1b88113cf87c91c892194f855b345f09de45d84f authorHarendra Kumar <harendra.kumar@gmail.com> dateThu 26 Oct 2017, 13:06 (9 years ago) parent7af74d9
2 files changed+45−3
src/Asyncly.hs+9−3 src/Asyncly/Streams.hs+36
src/Asyncly.hs+9−3
@@ -72,9 +72,6 @@ module Asyncly
7272 -- * Custom Composition
7373 , async
7474
75− -- * Running Streams
76− , runStreaming
77−
7875 -- * Stream Type Adapters
7976 , serially
8077 , interleaving
@@ -84,6 +81,15 @@ module Asyncly
8481 , zippingAsync
8582 , adapt
8683
84+ -- * Running Streams
85+ , runStreaming
86+ , runStreamT
87+ , runInterleavedT
88+ , runAsyncT
89+ , runParallelT
90+ , runZipStream
91+ , runZipAsync
92+
8793 -- * Fold Utilities
8894 , foldWith
8995 , foldMapWith
src/Asyncly/Streams.hs+36
@@ -35,6 +35,14 @@ module Asyncly.Streams
3535 , zipping
3636 , zippingAsync
3737 , adapt
38+
39+ -- * Running Streams
40+ , runStreamT
41+ , runInterleavedT
42+ , runAsyncT
43+ , runParallelT
44+ , runZipStream
45+ , runZipAsync
3846 )
3947where
4048
@@ -659,3 +667,31 @@ zipping x = x
659667-- | Interpret an ambiguously typed stream as 'ZipAsync'.
660668zippingAsync :: ZipAsync m a -> ZipAsync m a
661669zippingAsync x = x
670+
671+-------------------------------------------------------------------------------
672+-- Running Streams, convenience functions specialized to types
673+-------------------------------------------------------------------------------
674+
675+-- | Run a 'StreamT' computation. Same as @runStreaming . serially@.
676+runStreamT :: Monad m => StreamT m a -> m ()
677+runStreamT = runStreaming
678+
679+-- | Run an 'InterleavedT' computation. Same as @runStreaming . interleaving@.
680+runInterleavedT :: Monad m => InterleavedT m a -> m ()
681+runInterleavedT = runStreaming
682+
683+-- | Run an 'AsyncT' computation. Same as @runStreaming . asyncly@.
684+runAsyncT :: Monad m => AsyncT m a -> m ()
685+runAsyncT = runStreaming
686+
687+-- | Run a 'ParallelT' computation. Same as @runStreaming . parallely@.
688+runParallelT :: Monad m => ParallelT m a -> m ()
689+runParallelT = runStreaming
690+
691+-- | Run a 'ZipStream' computation. Same as @runStreaming . zipping@.
692+runZipStream :: Monad m => ZipStream m a -> m ()
693+runZipStream = runStreaming
694+
695+-- | Run a 'ZipAsync' computation. Same as @runStreaming . zippingAsync@.
696+runZipAsync :: Monad m => ZipAsync m a -> m ()
697+runZipAsync = runStreaming