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

Servant.Server.Internal.DelayedIO

Synopsis

Documentation

newtype DelayedIO a Source #

Computations used in a Delayed can depend on the incoming Request, may perform IO, and result in a RouteResult, meaning they can either succeed, fail (with the possibility to recover), or fail fatally.

Constructors

DelayedIO 

Fields

Instances

Instances details
MonadIO DelayedIO Source # 
Instance details

Defined in Servant.Server.Internal.DelayedIO

Methods

liftIO :: IO a -> DelayedIO a

MonadThrow DelayedIO Source # 
Instance details

Defined in Servant.Server.Internal.DelayedIO

Methods

throwM :: (HasCallStack, Exception e) => e -> DelayedIO a

Applicative DelayedIO Source # 
Instance details

Defined in Servant.Server.Internal.DelayedIO

Methods

pure :: a -> DelayedIO a

(<*>) :: DelayedIO (a -> b) -> DelayedIO a -> DelayedIO b

liftA2 :: (a -> b -> c) -> DelayedIO a -> DelayedIO b -> DelayedIO c

(*>) :: DelayedIO a -> DelayedIO b -> DelayedIO b

(<*) :: DelayedIO a -> DelayedIO b -> DelayedIO a

Functor DelayedIO Source # 
Instance details

Defined in Servant.Server.Internal.DelayedIO

Methods

fmap :: (a -> b) -> DelayedIO a -> DelayedIO b

(<$) :: a -> DelayedIO b -> DelayedIO a

Monad DelayedIO Source # 
Instance details

Defined in Servant.Server.Internal.DelayedIO

Methods

(>>=) :: DelayedIO a -> (a -> DelayedIO b) -> DelayedIO b

(>>) :: DelayedIO a -> DelayedIO b -> DelayedIO b

return :: a -> DelayedIO a

MonadResource DelayedIO Source # 
Instance details

Defined in Servant.Server.Internal.DelayedIO

Methods

liftResourceT :: ResourceT IO a -> DelayedIO a

MonadBaseControl IO DelayedIO Source # 
Instance details

Defined in Servant.Server.Internal.DelayedIO

Associated Types

type StM DelayedIO a 
Instance details

Defined in Servant.Server.Internal.DelayedIO

type StM DelayedIO a = RouteResult a

Methods

liftBaseWith :: (RunInBase DelayedIO IO -> IO a) -> DelayedIO a

restoreM :: StM DelayedIO a -> DelayedIO a

MonadReader Request DelayedIO Source # 
Instance details

Defined in Servant.Server.Internal.DelayedIO

Methods

ask :: DelayedIO Request

local :: (Request -> Request) -> DelayedIO a -> DelayedIO a

reader :: (Request -> a) -> DelayedIO a

MonadBase IO DelayedIO Source # 
Instance details

Defined in Servant.Server.Internal.DelayedIO

Methods

liftBase :: IO α -> DelayedIO α

type StM DelayedIO a Source # 
Instance details

Defined in Servant.Server.Internal.DelayedIO

type StM DelayedIO a = RouteResult a

runDelayedIO :: DelayedIO a -> Request -> ResourceT IO (RouteResult a) Source #

delayedFail :: ServerError -> DelayedIO a Source #

Fail with the option to recover.

delayedFailFatal :: ServerError -> DelayedIO a Source #

Fail fatally, i.e., without any option to recover.

withRequest :: (Request -> DelayedIO a) -> DelayedIO a Source #

Gain access to the incoming request.