pipes-key-value-csv-0.4.0.0: Streaming processing of CSV files preceded by key-value pairs.

Copyright(c) Marcin Mrotek 2015
LicenseBSD3
Maintainermarcin.jan.mrotek@gmail.com
Stabilityexperimental
Safe HaskellNone
LanguageHaskell2010

Pipes.KeyValueCsv.Common

Description

Utility functions.

Synopsis

Documentation

lines :: Monad m => Producer Text m r -> Lines m r Source #

Split a Text stream into lines.

cells :: (Monad m, Given Delimiter) => Line m r -> Cells m r Source #

Split a line into delimited cells.

useDelimiter :: Char -> (Given Delimiter => a) -> a Source #

Provide a delimiter for a computation. Do not use this function if there is already a Given Delimiter in scope.

wrapParser :: forall m f r. Functor m => Parser Text m (Either String (f r)) -> CellParser m f r Source #

Wrap a parser to use it as a type constructor for Rec.

defaultParser :: forall m f rs. (RecAll f rs FromCell, Monad m, Record rs) => Rec (CellParser m f) rs Source #

data Lines m r Source #

A stream of lines.

Instances

Monad m => Monad (Lines m) Source # 

Methods

(>>=) :: Lines m a -> (a -> Lines m b) -> Lines m b #

(>>) :: Lines m a -> Lines m b -> Lines m b #

return :: a -> Lines m a #

fail :: String -> Lines m a #

Monad m => Functor (Lines m) Source # 

Methods

fmap :: (a -> b) -> Lines m a -> Lines m b #

(<$) :: a -> Lines m b -> Lines m a #

Monad m => Applicative (Lines m) Source # 

Methods

pure :: a -> Lines m a #

(<*>) :: Lines m (a -> b) -> Lines m a -> Lines m b #

(*>) :: Lines m a -> Lines m b -> Lines m b #

(<*) :: Lines m a -> Lines m b -> Lines m a #

data Cells m r Source #

A stream of cells.

Instances

Monad m => Monad (Cells m) Source # 

Methods

(>>=) :: Cells m a -> (a -> Cells m b) -> Cells m b #

(>>) :: Cells m a -> Cells m b -> Cells m b #

return :: a -> Cells m a #

fail :: String -> Cells m a #

Monad m => Functor (Cells m) Source # 

Methods

fmap :: (a -> b) -> Cells m a -> Cells m b #

(<$) :: a -> Cells m b -> Cells m a #

Monad m => Applicative (Cells m) Source # 

Methods

pure :: a -> Cells m a #

(<*>) :: Cells m (a -> b) -> Cells m a -> Cells m b #

(*>) :: Cells m a -> Cells m b -> Cells m b #

(<*) :: Cells m a -> Cells m b -> Cells m a #

type Producer b = Proxy X () () b #

Producers can only yield

data Text :: * #

A space efficient, packed, unboxed Unicode text type.

Instances