polysemy-http-0.13.0.1: Polysemy effects for HTTP clients
Safe HaskellSafe-Inferred
LanguageGHC2021

Polysemy.Http.Effect.Entity

Description

 
Synopsis

Documentation

data EntityError Source #

Generic error type for decoders.

Constructors

EntityError 

Fields

Instances

Instances details
Show EntityError Source # 
Instance details

Defined in Polysemy.Http.Effect.Entity

Eq EntityError Source # 
Instance details

Defined in Polysemy.Http.Effect.Entity

data EntityEncode d :: Effect where Source #

Abstraction of json encoding, potentially usable for other content types like xml.

encodeLazy :: forall d r. Member (EntityEncode d) r => d -> Sem r LByteString Source #

Lazily encode a value of type d to a LByteString

encodeStrict :: forall d r. Member (EntityEncode d) r => d -> Sem r ByteString Source #

Strictly encode a value of type d to a ByteString

encode :: forall d r. Member (EntityEncode d) r => d -> Sem r ByteString Source #

Strictly encode a value of type d to a ByteString

data EntityDecode d :: Effect where Source #

Abstraction of json decoding, potentially usable for other content types like xml.

decodeLazy :: forall d r. Member (EntityDecode d) r => LByteString -> Sem r (Either EntityError d) Source #

Lazily decode a LByteString to a value of type d

decodeStrict :: forall d r. Member (EntityDecode d) r => ByteString -> Sem r (Either EntityError d) Source #

Strictly decode a ByteString to a value of type d

decode :: forall d r. Member (EntityDecode d) r => ByteString -> Sem r (Either EntityError d) Source #

Strictly decode a ByteString to a value of type d

data Encode a Source #

Marker type to be used with Entities

data Decode a Source #

Marker type to be used with Entities

type family Entities es r :: Constraint where ... Source #

Convenience constraint for requiring multiple entity effects, to be used like Members.

foo :: Entities [Encode Int, Decode Double] r => Sem r ()

Equations

Entities '[] _ = () 
Entities (Encode d ': ds) r = (Member (EntityEncode d) r, Entities ds r) 
Entities (Decode d ': ds) r = (Member (EntityDecode d) r, Entities ds r) 

type family Encoders es r :: Constraint where ... Source #

Convenience constraint for requiring multiple encoders.

foo :: Encoders [Int, Double] r => Sem r ()

Equations

Encoders '[] _ = () 
Encoders (d ': ds) r = (Member (EntityEncode d) r, Encoders ds r) 

type family Decoders ds r :: Constraint where ... Source #

Convenience constraint for requiring multiple decoders.

foo :: Decoders [Int, Double] r => Sem r ()

Equations

Decoders '[] _ = () 
Decoders (d ': ds) r = (Member (EntityDecode d) r, Decoders ds r)