cereal-conduit-0.5: Turn Data.Serialize Gets and Puts into Sources, Sinks, and Conduits

Safe HaskellSafe-Infered



Turn a Get into a Sink and a Put into a Source These functions are built upno the Data.Conduit.Cereal.Internal functions with default implementations of ErrorHandler and TerminationHandler

The default ErrorHandler and TerminationHandler both throw a GetException.



sinkGet :: MonadThrow m => Get r -> Sink ByteString m rSource

Convert a Get into a Sink. The Get will be streamed bytes until it returns Done or Fail.

If Get succeed it will return the data read and unconsumed part of the input stream. If the Get fails due to deserialization error or early termination of the input stream it raise an error.

conduitGet :: MonadThrow m => Get output -> Conduit ByteString m outputSource

Run a Get repeatedly on the input stream, producing an output stream of whatever the Get outputs.

sourcePut :: Monad m => Put -> Source m ByteStringSource

Convert a Put into a Source. Runs in constant memory.

conduitPut :: Monad m => Putter input -> Conduit input m ByteStringSource

Run a Putter repeatedly on the input stream, producing a concatenated ByteString stream.