serv-0.1.0.0: Dependently typed API server framework

Safe HaskellNone
LanguageHaskell2010

Serv.Internal.Api.Analysis

Description

Typeclasses constructing functions which reflect and analyze API types.

Documentation

class VerbsOf methods where Source #

Minimal complete definition

verbsOf

Methods

verbsOf :: Proxy methods -> Set Verb Source #

Instances

VerbsOf [k] ([] k) Source # 

Methods

verbsOf :: Proxy [k] methods -> Set Verb Source #

(ReflectVerb verb, VerbsOf [Method star] methods) => VerbsOf [Method star] ((:) (Method star) (Method star verb headers body) methods) Source # 

Methods

verbsOf :: Proxy ((Method star ': Method star verb headers body) methods) methods -> Set Verb Source #

class HeadersExpectedOf methods where Source #

Minimal complete definition

headersExpectedOf

Instances

HeadersExpectedOf ([] (Method *)) Source # 
HeadersExpectedOf rs => HeadersExpectedOf ((:) (Method *) (Method * verb headers body) rs) Source # 

Methods

headersExpectedOf :: Proxy [Method *] ((Method * ': Method * verb headers body) rs) -> Set HeaderName Source #

HeadersExpectedOf ((:) (Method *) method rs) => HeadersExpectedOf ((:) (Method *) (CaptureBody * ctypes ty method) rs) Source # 

Methods

headersExpectedOf :: Proxy [Method *] ((Method * ': CaptureBody * ctypes ty method) rs) -> Set HeaderName Source #

(HeadersExpectedOf ((:) (Method *) method rs), ReflectHeaderNames [Pair HeaderName *] hdrs) => HeadersExpectedOf ((:) (Method *) (CaptureHeaders * hdrs method) rs) Source # 

Methods

headersExpectedOf :: Proxy [Method *] ((Method * ': CaptureHeaders * hdrs method) rs) -> Set HeaderName Source #

HeadersExpectedOf ((:) (Method *) method rs) => HeadersExpectedOf ((:) (Method *) (CaptureQuery * names method) rs) Source # 

Methods

headersExpectedOf :: Proxy [Method *] ((Method * ': CaptureQuery * names method) rs) -> Set HeaderName Source #

class HeadersReturnedBy methods where Source #

Minimal complete definition

headersReturnedBy

Instances

HeadersReturnedBy ([] (Method *)) Source # 
(ReflectHeaderNames [Pair HeaderName *] headers, HeadersReturnedBy rs) => HeadersReturnedBy ((:) (Method *) (Method * verb headers body) rs) Source # 

Methods

headersReturnedBy :: Proxy [Method *] ((Method * ': Method * verb headers body) rs) -> Set HeaderName Source #

HeadersReturnedBy ((:) (Method *) method rs) => HeadersReturnedBy ((:) (Method *) (CaptureBody * ctypes ty method) rs) Source # 

Methods

headersReturnedBy :: Proxy [Method *] ((Method * ': CaptureBody * ctypes ty method) rs) -> Set HeaderName Source #

HeadersReturnedBy ((:) (Method *) method rs) => HeadersReturnedBy ((:) (Method *) (CaptureHeaders * hdrs method) rs) Source # 

Methods

headersReturnedBy :: Proxy [Method *] ((Method * ': CaptureHeaders * hdrs method) rs) -> Set HeaderName Source #

HeadersReturnedBy ((:) (Method *) method rs) => HeadersReturnedBy ((:) (Method *) (CaptureQuery * names method) rs) Source # 

Methods

headersReturnedBy :: Proxy [Method *] ((Method * ': CaptureQuery * names method) rs) -> Set HeaderName Source #