foundation-0.0.30: Alternative prelude with batteries and no dependencies

Safe Haskell | Safe-Inferred
Language | Haskell2010

Foundation.Conduit

Synopsis

- data Conduit input output monad result
- data ResourceT m a
- newtype ZipSink i m r = ZipSink {
  - getZipSink :: Conduit i () m r
  }
- await :: Conduit i o m (Maybe i)
- awaitForever :: (input -> Conduit input output monad b) -> Conduit input output monad ()
- yield :: Monad m => o -> Conduit i o m ()
- yields :: (Monad m, Foldable os, Element os ~ o) => os -> Conduit i o m ()
- yieldOr :: o -> m () -> Conduit i o m ()
- leftover :: i -> Conduit i o m ()
- runConduit :: Monad m => Conduit () () m r -> m r
- runConduitPure :: Conduit () () Identity r -> r
- runConduitRes :: (MonadBracket m, MonadIO m) => Conduit () () (ResourceT m) r -> m r
- fuse :: Monad m => Conduit a b m () -> Conduit b c m r -> Conduit a c m r
- (.|) :: Monad m => Conduit a b m () -> Conduit b c m r -> Conduit a c m r
- sourceFile :: MonadResource m => FilePath -> Conduit i (UArray Word8) m ()
- sourceHandle :: MonadIO m => Handle -> Conduit i (UArray Word8) m ()
- sinkFile :: MonadResource m => FilePath -> Conduit (UArray Word8) i m ()
- sinkHandle :: MonadIO m => Handle -> Conduit (UArray Word8) o m ()
- sinkList :: Monad m => Conduit i o m [i]
- bracketConduit :: MonadResource m => IO a -> (a -> IO b) -> (a -> Conduit i o m r) -> Conduit i o m r

# Documentation

data Conduit input output monad result Source #

A component of a conduit pipeline, which takes a stream of `input`, produces a stream of `output`, performs actions in the underlying `monad`, and produces a value of `result` when no more output data is available.

#### Instances

Instances details

MonadTrans (Conduit i o) Source # |
Instance details Defined in Foundation.Conduit.Internal Methods lift :: Monad m => m a -> Conduit i o m a Source #
MonadIO m => MonadIO (Conduit i o m) Source # |
Instance details Defined in Foundation.Conduit.Internal Methods liftIO :: IO a -> Conduit i o m a Source #
Applicative (Conduit i o m) Source # |

Instance details

Defined in Foundation.Conduit.Internal

Methods

pure :: a -> Conduit i o m a Source #

(<*>) :: Conduit i o m (a -> b) -> Conduit i o m a -> Conduit i o m b Source #

liftA2 :: (a -> b -> c) -> Conduit i o m a -> Conduit i o m b -> Conduit i o m c Source #

(*>) :: Conduit i o m a -> Conduit i o m b -> Conduit i o m b Source #

(<*) :: Conduit i o m a -> Conduit i o m b -> Conduit i o m a Source #

Functor (Conduit i o m) Source # |
Instance details Defined in Foundation.Conduit.Internal Methods fmap :: (a -> b) -> Conduit i o m a -> Conduit i o m b Source # (<$) :: a -> Conduit i o m b -> Conduit i o m a Source #
Monad (Conduit i o m) Source # |
Instance details Defined in Foundation.Conduit.Internal Methods (>>=) :: Conduit i o m a -> (a -> Conduit i o m b) -> Conduit i o m b Source # (>>) :: Conduit i o m a -> Conduit i o m b -> Conduit i o m b Source # return :: a -> Conduit i o m a Source #
MonadFailure m => MonadFailure (Conduit i o m) Source # |
Instance details Defined in Foundation.Conduit.Internal Associated Types type Failure (Conduit i o m) Source # Methods mFail :: Failure (Conduit i o m) -> Conduit i o m () Source #
MonadCatch m => MonadCatch (Conduit i o m) Source # |
Instance details Defined in Foundation.Conduit.Internal Methods catch :: Exception e => Conduit i o m a -> (e -> Conduit i o m a) -> Conduit i o m a Source #
MonadThrow m => MonadThrow (Conduit i o m) Source # |
Instance details Defined in Foundation.Conduit.Internal Methods throw :: Exception e => e -> Conduit i o m a Source #
type Failure (Conduit i o m) Source # |
Instance details Defined in Foundation.Conduit.Internal type Failure (Conduit i o m) = Failure m

data ResourceT m a Source #

#### Instances

Instances details

MonadTrans ResourceT Source # |
Instance details Defined in Foundation.Conduit.Internal Methods lift :: Monad m => m a -> ResourceT m a Source #
MonadIO m => MonadIO (ResourceT m) Source # |
Instance details Defined in Foundation.Conduit.Internal Methods liftIO :: IO a -> ResourceT m a Source #
Applicative m => Applicative (ResourceT m) Source # |
Instance details Defined in Foundation.Conduit.Internal Methods pure :: a -> ResourceT m a Source # (<*>) :: ResourceT m (a -> b) -> ResourceT m a -> ResourceT m b Source # liftA2 :: (a -> b -> c) -> ResourceT m a -> ResourceT m b -> ResourceT m c Source # (*>) :: ResourceT m a -> ResourceT m b -> ResourceT m b Source # (<*) :: ResourceT m a -> ResourceT m b -> ResourceT m a Source #
Functor m => Functor (ResourceT m) Source # |
Instance details Defined in Foundation.Conduit.Internal Methods fmap :: (a -> b) -> ResourceT m a -> ResourceT m b Source # (<$) :: a -> ResourceT m b -> ResourceT m a Source #
Monad m => Monad (ResourceT m) Source # |
Instance details Defined in Foundation.Conduit.Internal Methods (>>=) :: ResourceT m a -> (a -> ResourceT m b) -> ResourceT m b Source # (>>) :: ResourceT m a -> ResourceT m b -> ResourceT m b Source # return :: a -> ResourceT m a Source #
MonadBracket m => MonadBracket (ResourceT m) Source # |
Instance details Defined in Foundation.Conduit.Internal Methods generalBracket :: ResourceT m a -> (a -> b -> ResourceT m ignored1) -> (a -> SomeException -> ResourceT m ignored2) -> (a -> ResourceT m b) -> ResourceT m b Source #
MonadCatch m => MonadCatch (ResourceT m) Source # |
Instance details Defined in Foundation.Conduit.Internal Methods catch :: Exception e => ResourceT m a -> (e -> ResourceT m a) -> ResourceT m a Source #
MonadThrow m => MonadThrow (ResourceT m) Source # |
Instance details Defined in Foundation.Conduit.Internal Methods throw :: Exception e => e -> ResourceT m a Source #

newtype ZipSink i m r Source #

Constructors

ZipSink |

Fields

- getZipSink :: Conduit i () m r

#### Instances

Instances details

Monad m => Applicative (ZipSink i m) Source # |
Instance details Defined in Foundation.Conduit.Internal Methods pure :: a -> ZipSink i m a Source # (<*>) :: ZipSink i m (a -> b) -> ZipSink i m a -> ZipSink i m b Source # liftA2 :: (a -> b -> c) -> ZipSink i m a -> ZipSink i m b -> ZipSink i m c Source # (*>) :: ZipSink i m a -> ZipSink i m b -> ZipSink i m b Source # (<*) :: ZipSink i m a -> ZipSink i m b -> ZipSink i m a Source #
Monad m => Functor (ZipSink i m) Source # |
Instance details Defined in Foundation.Conduit.Internal Methods fmap :: (a -> b) -> ZipSink i m a -> ZipSink i m b Source # (<$) :: a -> ZipSink i m b -> ZipSink i m a Source #

await :: Conduit i o m (Maybe i) Source #

Await for a value from upstream.

awaitForever :: (input -> Conduit input output monad b) -> Conduit input output monad () Source #

yield :: Monad m => o -> Conduit i o m () Source #

Send a value downstream.

yields :: (Monad m, Foldable os, Element os ~ o) => os -> Conduit i o m () Source #

Send values downstream.

yieldOr Source #

Arguments

:: o |
-> m () | finalizer
-> Conduit i o m () |

Same as `yield`, but additionally takes a finalizer to be run if the downstream component terminates.

leftover :: i -> Conduit i o m () Source #

Provide leftover input to be consumed by the next component in the current monadic binding.

runConduit :: Monad m => Conduit () () m r -> m r Source #

Run a conduit pipeline to completion.

runConduitPure :: Conduit () () Identity r -> r Source #

Run a pure conduit pipeline to completion.

runConduitRes :: (MonadBracket m, MonadIO m) => Conduit () () (ResourceT m) r -> m r Source #

Run a conduit pipeline in a `ResourceT` context for acquiring resources.

fuse :: Monad m => Conduit a b m () -> Conduit b c m r -> Conduit a c m r Source #

Send the output of the first Conduit component to the second Conduit component.

(.|) :: Monad m => Conduit a b m () -> Conduit b c m r -> Conduit a c m r infixr 2 Source #

Operator version of `fuse`.

sourceFile :: MonadResource m => FilePath -> Conduit i (UArray Word8) m () Source #

sourceHandle :: MonadIO m => Handle -> Conduit i (UArray Word8) m () Source #

sinkFile :: MonadResource m => FilePath -> Conduit (UArray Word8) i m () Source #

sinkHandle :: MonadIO m => Handle -> Conduit (UArray Word8) o m () Source #

sinkList :: Monad m => Conduit i o m [i] Source #

bracketConduit :: MonadResource m => IO a -> (a -> IO b) -> (a -> Conduit i o m r) -> Conduit i o m r Source #