Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
The utility effect ProcessOutput
takes care of decoding process output, getting called by the
Process
interpreters whenever a chunk was read, while accumulating chunks until they were decoded
successfully.
Synopsis
- data ProcessOutput a :: Effect where
- Chunk :: ByteString -> ByteString -> ProcessOutput a m ([a], ByteString)
- interpretProcessOutputId :: InterpreterFor (ProcessOutput ByteString) r
- interpretProcessOutputLines :: InterpreterFor (ProcessOutput ByteString) r
- interpretProcessOutputText :: InterpreterFor (ProcessOutput Text) r
- interpretProcessOutputTextLines :: InterpreterFor (ProcessOutput Text) r
Documentation
data ProcessOutput a :: Effect where Source #
This effect is used by the effect Process
to accumulate and decode chunks of ByteString
s, for
example using a parser.
The interpreter may be stateful or stateless, since the constructor Chunk
is expected to be called with both the
accumulated unprocessed output as well as the new chunk.
Chunk | Add a chunk of output to the accumulator, returning any number of successfully parsed values and the leftover output. |
|
Instances
type DefiningModule ProcessOutput Source # | |
Defined in Polysemy.Process.Effect.ProcessOutput |
interpretProcessOutputId :: InterpreterFor (ProcessOutput ByteString) r Source #
Interpret ProcessOutput
by immediately emitting raw ByteString
s without accumulation.
interpretProcessOutputLines :: InterpreterFor (ProcessOutput ByteString) r Source #
Interpret ProcessOutput
by emitting individual ByteString
lines of output.
interpretProcessOutputText :: InterpreterFor (ProcessOutput Text) r Source #
Interpret ProcessOutput
by immediately emitting Text
without accumulation.
interpretProcessOutputTextLines :: InterpreterFor (ProcessOutput Text) r Source #
Interpret ProcessOutput
by emitting individual Text
lines of output.