Safe Haskell | None |
---|---|
Language | Haskell2010 |
This module introduces ConduitParser
, a wrapper around Sink
that behaves like a parser.
You probably want to import the Text.Parser.Combinators module together with this module.
- data ConduitParser i m a
- runConduitParser :: MonadThrow m => ConduitParser i m a -> Sink i m a
- named :: MonadCatch m => Text -> ConduitParser i m a -> ConduitParser i m a
- await :: MonadCatch m => ConduitParser i m i
- leftover :: Monad m => i -> ConduitParser i m ()
- getParserName :: ConduitParser i m Text
- peek :: Monad m => ConduitParser i m (Maybe i)
- data ConduitParserException
Conduit parser monad
data ConduitParser i m a Source
Core type of the package. This is basically a Sink
with a parsing state.
MonadTrans (ConduitParser i) Source | |
Monad m => Monad (ConduitParser i m) Source | |
Functor (ConduitParser i m) Source | |
Applicative (ConduitParser i m) Source | |
MonadCatch m => Alternative (ConduitParser i m) Source | Parsers can be combined with The use of Note: only |
MonadThrow m => MonadThrow (ConduitParser i m) Source | Consumed elements are pushed back with |
MonadCatch m => MonadCatch (ConduitParser i m) Source | |
MonadCatch m => Parsing (ConduitParser i m) Source | Parsing combinators can be used with |
runConduitParser :: MonadThrow m => ConduitParser i m a -> Sink i m a Source
Run a ConduitParser
.
Any parsing failure will be thrown as an exception.
named :: MonadCatch m => Text -> ConduitParser i m a -> ConduitParser i m a Source
Flipped version of (<?>)
.
Primitives
await :: MonadCatch m => ConduitParser i m i Source
await
wrapped as a ConduitParser
.
If no data is available, UnexpectedEndOfInput
is thrown.
leftover :: Monad m => i -> ConduitParser i m () Source
leftover
wrapped as a ConduitParser
.
getParserName :: ConduitParser i m Text Source
Return the name of the parser (assigned through (<?>)
), or mempty
if has none.
Utility
peek :: Monad m => ConduitParser i m (Maybe i) Source
peek
wrapped as a ConduitParser
.