binary-ext-2.0: An alternate with strong-typed errors for `Data.Binary.Get` monad from `binary` package.

Safe HaskellNone
LanguageHaskell2010

Data.Conduit.Parsers.PutS

Description

This module provides the PutS functor, and all functions, which could not be defined using PutS public interface only.

Synopsis

Documentation

class EncodingState s where Source #

Collects encoding process feedback.

Minimal complete definition

encoded

Associated Types

type EncodingToken s :: * Source #

Methods

encoded :: EncodingToken s -> s -> s Source #

data Encoding s m Source #

PutS monad state.

encodingWrote :: Encoding s m -> s Source #

Get the total number of bytes wrote to this point.

runEncoding :: Encoding s m -> m () Source #

Get the Producer.

startEncoding :: Applicative m => s -> Encoding s m Source #

Construct PutS initial state.

data PutS s m a Source #

Wrappers for PutM with inner monad m and result a (usually ()).

Instances

Monad (PutS s m) Source # 

Methods

(>>=) :: PutS s m a -> (a -> PutS s m b) -> PutS s m b #

(>>) :: PutS s m a -> PutS s m b -> PutS s m b #

return :: a -> PutS s m a #

fail :: String -> PutS s m a #

Functor (PutS s m) Source # 

Methods

fmap :: (a -> b) -> PutS s m a -> PutS s m b #

(<$) :: a -> PutS s m b -> PutS s m a #

MonadFix (PutS s m) Source # 

Methods

mfix :: (a -> PutS s m a) -> PutS s m a #

Applicative (PutS s m) Source # 

Methods

pure :: a -> PutS s m a #

(<*>) :: PutS s m (a -> b) -> PutS s m a -> PutS s m b #

liftA2 :: (a -> b -> c) -> PutS s m a -> PutS s m b -> PutS s m c #

(*>) :: PutS s m a -> PutS s m b -> PutS s m b #

(<*) :: PutS s m a -> PutS s m b -> PutS s m a #

Monad m => Semigroup (PutS s m ()) Source # 

Methods

(<>) :: PutS s m () -> PutS s m () -> PutS s m () #

sconcat :: NonEmpty (PutS s m ()) -> PutS s m () #

stimes :: Integral b => b -> PutS s m () -> PutS s m () #

(EncodingState s, (~) * (EncodingToken s) (), Monad m) => IsString (PutM s i Text m ()) Source # 

Methods

fromString :: String -> PutM s i Text m () #

runPutS :: PutS s m a -> Encoding s m -> (a, Encoding s m) Source #

Run a Put monad, unwrapping all wrappers in a reversible way. putS . runPutS = id

putS :: (Encoding s m -> (a, Encoding s m)) -> PutS s m a Source #

Custom Put. putS . runPutS = id

type PutM s i o m a = PutS s (ConduitM i o m) a Source #

A ConduitM with wrappers supposed to a binary serialization.