Servant.Server.Internal.Handler

servant-server-0.20.2: A family of combinators for defining webservices APIs and serving them

Safe Haskell | None
Language | Haskell2010

Servant.Server.Internal.Handler

Synopsis

- newtype Handler a = Handler {
  - runHandler' :: ExceptT ServerError IO a
  }
- runHandler :: Handler a -> IO (Either ServerError a)
- pattern MkHandler :: IO (Either ServerError a) -> Handler a

# Documentation

newtype Handler a #

Constructors

Handler |
Fields runHandler' :: ExceptT ServerError IO a

#### Instances

Instances details

MonadIO Handler # |
Instance details Defined in Servant.Server.Internal.Handler Methods liftIO :: IO a -> Handler a #
MonadCatch Handler # |
Instance details Defined in Servant.Server.Internal.Handler Methods catch :: (HasCallStack, Exception e) => Handler a -> (e -> Handler a) -> Handler a #
MonadMask Handler # |
Instance details Defined in Servant.Server.Internal.Handler Methods mask :: HasCallStack => ((forall a. Handler a -> Handler a) -> Handler b) -> Handler b # uninterruptibleMask :: HasCallStack => ((forall a. Handler a -> Handler a) -> Handler b) -> Handler b # generalBracket :: HasCallStack => Handler a -> (a -> ExitCase b -> Handler c) -> (a -> Handler b) -> Handler (b, c) #
MonadThrow Handler # |
Instance details Defined in Servant.Server.Internal.Handler Methods throwM :: (HasCallStack, Exception e) => e -> Handler a #
Applicative Handler # |
Instance details Defined in Servant.Server.Internal.Handler Methods pure :: a -> Handler a # (<*>) :: Handler (a -> b) -> Handler a -> Handler b # liftA2 :: (a -> b -> c) -> Handler a -> Handler b -> Handler c # (*>) :: Handler a -> Handler b -> Handler b # (<*) :: Handler a -> Handler b -> Handler a #
Functor Handler # |
Instance details Defined in Servant.Server.Internal.Handler Methods fmap :: (a -> b) -> Handler a -> Handler b # (<$) :: a -> Handler b -> Handler a #
Monad Handler # |
Instance details Defined in Servant.Server.Internal.Handler Methods (>>=) :: Handler a -> (a -> Handler b) -> Handler b # (>>) :: Handler a -> Handler b -> Handler b # return :: a -> Handler a #
MonadFail Handler # |
Instance details Defined in Servant.Server.Internal.Handler Methods fail :: String -> Handler a #
MonadBaseControl IO Handler # |
Instance details Defined in Servant.Server.Internal.Handler Associated Types
type StM Handler a |
Instance details Defined in Servant.Server.Internal.Handler type StM Handler a = Either ServerError a
Methods liftBaseWith :: (RunInBase Handler IO -> IO a) -> Handler a # restoreM :: StM Handler a -> Handler a #
MonadError ServerError Handler # |
Instance details Defined in Servant.Server.Internal.Handler Methods throwError :: ServerError -> Handler a # catchError :: Handler a -> (ServerError -> Handler a) -> Handler a #
MonadBase IO Handler # |
Instance details Defined in Servant.Server.Internal.Handler Methods liftBase :: IO α -> Handler α #
Generic (Handler a) # |
Instance details Defined in Servant.Server.Internal.Handler Associated Types
type Rep (Handler a) |
Instance details Defined in Servant.Server.Internal.Handler type Rep (Handler a) = D1 ('MetaData "Handler" "Servant.Server.Internal.Handler" "servant-server-0.20.2-Knbwwylwin94JEnqxQX42x" 'True) (C1 ('MetaCons "Handler" 'PrefixI 'True) (S1 ('MetaSel ('Just "runHandler'") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ExceptT ServerError IO a))))
Methods from :: Handler a -> Rep (Handler a) x # to :: Rep (Handler a) x -> Handler a #
type StM Handler a # |
Instance details Defined in Servant.Server.Internal.Handler type StM Handler a = Either ServerError a
type Rep (Handler a) # |
Instance details Defined in Servant.Server.Internal.Handler type Rep (Handler a) = D1 ('MetaData "Handler" "Servant.Server.Internal.Handler" "servant-server-0.20.2-Knbwwylwin94JEnqxQX42x" 'True) (C1 ('MetaCons "Handler" 'PrefixI 'True) (S1 ('MetaSel ('Just "runHandler'") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ExceptT ServerError IO a))))

runHandler :: Handler a -> IO (Either ServerError a) #

pattern MkHandler :: IO (Either ServerError a) -> Handler a #

Pattern synonym that matches directly on the inner `IO` action.

To lift `IO` actions that don't carry a `ServerError`, use `liftIO` instead.