twain-2.1.2.0: Tiny web application framework for WAI.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Web.Twain.Types

Synopsis

Documentation

data ResponderM a Source #

ResponderM is an Either-like monad that can "short-circuit" and return a response, or pass control to the next middleware. This provides convenient branching with do notation for redirects, error responses, etc.

Constructors

ResponderM (Request -> IO (Either RouteAction (a, Request))) 

Instances

Instances details
MonadIO ResponderM Source # 
Instance details

Defined in Web.Twain.Types

Methods

liftIO :: IO a -> ResponderM a #

Applicative ResponderM Source # 
Instance details

Defined in Web.Twain.Types

Methods

pure :: a -> ResponderM a #

(<*>) :: ResponderM (a -> b) -> ResponderM a -> ResponderM b #

liftA2 :: (a -> b -> c) -> ResponderM a -> ResponderM b -> ResponderM c #

(*>) :: ResponderM a -> ResponderM b -> ResponderM b #

(<*) :: ResponderM a -> ResponderM b -> ResponderM a #

Functor ResponderM Source # 
Instance details

Defined in Web.Twain.Types

Methods

fmap :: (a -> b) -> ResponderM a -> ResponderM b #

(<$) :: a -> ResponderM b -> ResponderM a #

Monad ResponderM Source # 
Instance details

Defined in Web.Twain.Types

Methods

(>>=) :: ResponderM a -> (a -> ResponderM b) -> ResponderM b #

(>>) :: ResponderM a -> ResponderM b -> ResponderM b #

return :: a -> ResponderM a #

MonadCatch ResponderM Source # 
Instance details

Defined in Web.Twain.Types

Methods

catch :: Exception e => ResponderM a -> (e -> ResponderM a) -> ResponderM a #

MonadThrow ResponderM Source # 
Instance details

Defined in Web.Twain.Types

Methods

throwM :: Exception e => e -> ResponderM a #

data HttpError Source #

Constructors

HttpError Status String 

Instances

Instances details
Exception HttpError Source # 
Instance details

Defined in Web.Twain.Types

Show HttpError Source # 
Instance details

Defined in Web.Twain.Types

Eq HttpError Source # 
Instance details

Defined in Web.Twain.Types

type Param = (Text, Text) Source #

data PathPattern Source #

Constructors

MatchPath (Request -> Maybe [Param]) 

Instances

Instances details
IsString PathPattern Source # 
Instance details

Defined in Web.Twain.Types

class ParsableParam a where Source #

Parse values from request parameters.

Minimal complete definition

parseParam

Methods

parseParam :: Text -> Either HttpError a Source #

parseParamList :: Text -> Either HttpError [a] Source #

Default implementation parses comma-delimited lists.

Instances

Instances details
ParsableParam Int16 Source # 
Instance details

Defined in Web.Twain.Types

ParsableParam Int32 Source # 
Instance details

Defined in Web.Twain.Types

ParsableParam Int64 Source # 
Instance details

Defined in Web.Twain.Types

ParsableParam Int8 Source # 
Instance details

Defined in Web.Twain.Types

ParsableParam Word16 Source # 
Instance details

Defined in Web.Twain.Types

ParsableParam Word32 Source # 
Instance details

Defined in Web.Twain.Types

ParsableParam Word64 Source # 
Instance details

Defined in Web.Twain.Types

ParsableParam Word8 Source # 
Instance details

Defined in Web.Twain.Types

ParsableParam ByteString Source # 
Instance details

Defined in Web.Twain.Types

ParsableParam ByteString Source # 
Instance details

Defined in Web.Twain.Types

ParsableParam Text Source # 
Instance details

Defined in Web.Twain.Types

ParsableParam Text Source # 
Instance details

Defined in Web.Twain.Types

ParsableParam Integer Source # 
Instance details

Defined in Web.Twain.Types

ParsableParam Natural Source # 
Instance details

Defined in Web.Twain.Types

ParsableParam () Source # 
Instance details

Defined in Web.Twain.Types

ParsableParam Bool Source # 
Instance details

Defined in Web.Twain.Types

ParsableParam Char Source # 
Instance details

Defined in Web.Twain.Types

ParsableParam Double Source # 
Instance details

Defined in Web.Twain.Types

ParsableParam Float Source # 
Instance details

Defined in Web.Twain.Types

ParsableParam Int Source # 
Instance details

Defined in Web.Twain.Types

ParsableParam Word Source # 
Instance details

Defined in Web.Twain.Types

ParsableParam a => ParsableParam [a] Source # 
Instance details

Defined in Web.Twain.Types

readEither :: Read a => Text -> Either HttpError a Source #

Useful for creating ParsableParam instances for things that already implement Read.