servant-auth-server-0.2.0.0: servant-server/servant-auth compatibility

Safe HaskellNone
LanguageHaskell2010

Servant.Auth.Server.Internal.Class

Contents

Synopsis

Documentation

class IsAuth a v where Source

IsAuth a ctx v indicates that a is an auth type that expects all elements of ctx to be the in the Context and whose authentication check returns an AuthCheck v.

Associated Types

type AuthArgs a :: [*] Source

Methods

runAuth :: proxy a -> proxy v -> Unapp (AuthArgs a) (AuthCheck v) Source

Instances

Helper

class AreAuths as ctxs v where Source

Methods

runAuths :: proxy as -> Context ctxs -> AuthCheck v Source

Instances

AreAuths ([] *) ctxs v Source 
((~) * (AuthCheck v) (App (AuthArgs a) (Unapp (AuthArgs a) (AuthCheck v))), IsAuth a v, AreAuths as ctxs v, AppCtx ctxs (AuthArgs a) (Unapp (AuthArgs a) (AuthCheck v))) => AreAuths ((:) * a as) ctxs v Source 

type family Unapp ls res Source

Equations

Unapp `[]` res = res 
Unapp (arg1 : rest) res = arg1 -> Unapp rest res 

type family App ls res Source

Equations

App `[]` res = res 
App (arg1 : rest) (arg1 -> res) = App rest res 

class AppCtx ctx ls res where Source

AppCtx applies the function res to the arguments in ls by taking the values from the Context provided.

Methods

appCtx :: proxy ls -> Context ctx -> res -> App ls res Source

Instances

AppCtx ctx ([] *) res Source 
(HasContextEntry ctxs ctx, AppCtx ctxs rest res) => AppCtx ctxs ((:) * ctx rest) (ctx -> res) Source