conduit-merge

Merge multiple conduits into one.


Keywords
conduit, library, Propose Tags , Data.Conduit.Merge
License
BSD-3-Clause
Install
cabal install conduit-merge-0.1.2.0

Documentation

conduit-merge

Merge multiple conduits into one.

module Data.Conduit.Merge where

-- | Merge multiple sorted sources into one sorted producer.
mergeSources :: (Ord a, Foldable f, Monad m) => f (Source m a) -> Producer m a

-- | Merge multiple sorted sources into one sorted producer using specified sorting key.
mergeSourcesOn :: (Ord b, Foldable f, Monad m) => (a -> b) -> f (Source m a) -> Producer m a

Example

-- see `example.hs` for the whole program
main = do
    inputFileNames <- getArgs
    let inputs = [sourceFile file =$= Conduit.lines | file <- inputFileNames]
    runResourceT $ mergeSources inputs $$ sinkStdoutLn