linnet-0.4.0.1: Lightweight library for building HTTP API

Safe HaskellNone
LanguageHaskell2010

Linnet.Compile

Synopsis

Documentation

class Compile cts m es where Source #

Minimal complete definition

compileWithContext

Methods

compile :: es -> Compiled m Source #

Compile Endpoints into one Compiled ReaderT for further composition and final conversion to WAI Application

compileWithContext :: es -> CompileContext -> Compiled m Source #

Instances
Monad m => Compile CNil m (HList ([] :: [Type])) Source # 
Instance details

Defined in Linnet.Compile

Methods

compile :: HList [] -> Compiled m Source #

compileWithContext :: HList [] -> CompileContext -> Compiled m Source #

(Negotiable ct a, Negotiable ct SomeException, Negotiable ct (), Compile cts m (HList es), MonadCatch m) => Compile (ct :+: cts) m (HList (Endpoint m a ': es)) Source # 
Instance details

Defined in Linnet.Compile

Methods

compile :: HList (Endpoint m a ': es) -> Compiled m Source #

compileWithContext :: HList (Endpoint m a ': es) -> CompileContext -> Compiled m Source #

type Compiled m = ReaderT Request (WriterT Trace m) (Either SomeException Response) Source #

Type alias for ReaderT with WriterT Trace inside to support endpoints tracing