yesod-core-1.6.4: Creation of type-safe, RESTful web applications.

Safe HaskellNone
LanguageHaskell98

Yesod.Core.Types

Synopsis

Documentation

type SaveSession Source #

Arguments

 = SessionMap

The session contents after running the handler

-> IO [Header] 

newtype SessionBackend Source #

Constructors

SessionBackend 

Fields

data YesodRequest Source #

The parsed request information. This type augments the standard WAI Request with additional information.

Constructors

YesodRequest 

Fields

data YesodResponse Source #

An augmented WAI Response. This can either be a standard Response, or a higher-level data structure which Yesod will turn into a Response.

type RequestBodyContents = ([(Text, Text)], [(Text, FileInfo)]) Source #

A tuple containing both the POST parameters and submitted files.

data FileInfo Source #

Constructors

FileInfo 

data Approot master Source #

How to determine the root of the application for constructing URLs.

Note that future versions of Yesod may add new constructors without bumping the major version number. As a result, you should not pattern match on Approot values.

Constructors

ApprootRelative

No application root.

ApprootStatic !Text 
ApprootMaster !(master -> Text) 
ApprootRequest !(master -> Request -> Text) 

type BottomOfHeadAsync master Source #

Arguments

 = [Text]

urls to load asynchronously

-> Maybe (HtmlUrl (Route master))

widget of js to run on async completion

-> HtmlUrl (Route master)

widget to insert at the bottom of head

type Texts = [Text] Source #

newtype WaiSubsite Source #

Wrap up a normal WAI application as a Yesod subsite. Ignore parent site's middleware and isAuthorized.

Constructors

WaiSubsite 

newtype WaiSubsiteWithAuth Source #

Like WaiSubsite, but applies parent site's middleware and isAuthorized.

Since: 1.4.34

Instances

ParseRoute WaiSubsiteWithAuth Source # 
RenderRoute WaiSubsiteWithAuth Source # 

Associated Types

data Route WaiSubsiteWithAuth :: * Source #

YesodSubDispatch WaiSubsiteWithAuth master Source # 
Eq (Route WaiSubsiteWithAuth) Source # 
Ord (Route WaiSubsiteWithAuth) Source # 
Read (Route WaiSubsiteWithAuth) Source # 
Show (Route WaiSubsiteWithAuth) Source # 
data Route WaiSubsiteWithAuth Source # 

data RunHandlerEnv child site Source #

Constructors

RunHandlerEnv 

Fields

data HandlerData child site Source #

Instances

MonadReader (HandlerData site site) (HandlerFor site) Source # 

Methods

ask :: HandlerFor site (HandlerData site site) #

local :: (HandlerData site site -> HandlerData site site) -> HandlerFor site a -> HandlerFor site a #

reader :: (HandlerData site site -> a) -> HandlerFor site a #

MonadReader (HandlerData child master) (SubHandlerFor child master) Source # 

Methods

ask :: SubHandlerFor child master (HandlerData child master) #

local :: (HandlerData child master -> HandlerData child master) -> SubHandlerFor child master a -> SubHandlerFor child master a #

reader :: (HandlerData child master -> a) -> SubHandlerFor child master a #

data YesodRunnerEnv site Source #

Constructors

YesodRunnerEnv 

Fields

data YesodSubRunnerEnv sub parent Source #

Constructors

YesodSubRunnerEnv 

Fields

type ParentRunner parent = HandlerFor parent TypedContent -> YesodRunnerEnv parent -> Maybe (Route parent) -> Application Source #

newtype HandlerFor site a Source #

A generic handler monad, which can have a different subsite and master site. We define a newtype for better error message.

Constructors

HandlerFor 

Fields

Instances

Monad (HandlerFor site) Source # 

Methods

(>>=) :: HandlerFor site a -> (a -> HandlerFor site b) -> HandlerFor site b #

(>>) :: HandlerFor site a -> HandlerFor site b -> HandlerFor site b #

return :: a -> HandlerFor site a #

fail :: String -> HandlerFor site a #

Functor (HandlerFor site) Source # 

Methods

fmap :: (a -> b) -> HandlerFor site a -> HandlerFor site b #

(<$) :: a -> HandlerFor site b -> HandlerFor site a #

Applicative (HandlerFor site) Source # 

Methods

pure :: a -> HandlerFor site a #

(<*>) :: HandlerFor site (a -> b) -> HandlerFor site a -> HandlerFor site b #

liftA2 :: (a -> b -> c) -> HandlerFor site a -> HandlerFor site b -> HandlerFor site c #

(*>) :: HandlerFor site a -> HandlerFor site b -> HandlerFor site b #

(<*) :: HandlerFor site a -> HandlerFor site b -> HandlerFor site a #

MonadIO (HandlerFor site) Source # 

Methods

liftIO :: IO a -> HandlerFor site a #

MonadUnliftIO (HandlerFor site) Source #

Since: 1.4.38

Methods

askUnliftIO :: HandlerFor site (UnliftIO (HandlerFor site)) #

withRunInIO :: ((forall a. HandlerFor site a -> IO a) -> IO b) -> HandlerFor site b #

MonadResource (HandlerFor site) Source # 

Methods

liftResourceT :: ResourceT IO a -> HandlerFor site a #

MonadThrow (HandlerFor site) Source # 

Methods

throwM :: Exception e => e -> HandlerFor site a #

MonadLogger (HandlerFor site) Source # 

Methods

monadLoggerLog :: ToLogStr msg => Loc -> LogSource -> LogLevel -> msg -> HandlerFor site () #

MonadLoggerIO (HandlerFor site) Source # 

Methods

askLoggerIO :: HandlerFor site (Loc -> LogSource -> LogLevel -> LogStr -> IO ()) #

MonadHandler (HandlerFor site) Source # 

Associated Types

type HandlerSite (HandlerFor site :: * -> *) :: * Source #

type SubHandlerSite (HandlerFor site :: * -> *) :: * Source #

MonadReader (HandlerData site site) (HandlerFor site) Source # 

Methods

ask :: HandlerFor site (HandlerData site site) #

local :: (HandlerData site site -> HandlerData site site) -> HandlerFor site a -> HandlerFor site a #

reader :: (HandlerData site site -> a) -> HandlerFor site a #

type HandlerSite (HandlerFor site) Source # 
type HandlerSite (HandlerFor site) = site
type SubHandlerSite (HandlerFor site) Source # 
type SubHandlerSite (HandlerFor site) = site

data GHState Source #

Constructors

GHState 

Fields

type YesodApp = YesodRequest -> ResourceT IO YesodResponse Source #

An extension of the basic WAI Application datatype to provide extra features needed by Yesod. Users should never need to use this directly, as the HandlerT monad and template haskell code should hide it away.

newtype WidgetFor site a Source #

A generic widget, allowing specification of both the subsite and master site datatypes. While this is simply a WriterT, we define a newtype for better error messages.

Constructors

WidgetFor 

Fields

Instances

((~) * site' site, (~) * a ()) => ToWidget site' (WidgetFor site a) Source # 

Methods

toWidget :: (MonadWidget m, (* ~ HandlerSite m) site') => WidgetFor site a -> m () Source #

Monad (WidgetFor site) Source # 

Methods

(>>=) :: WidgetFor site a -> (a -> WidgetFor site b) -> WidgetFor site b #

(>>) :: WidgetFor site a -> WidgetFor site b -> WidgetFor site b #

return :: a -> WidgetFor site a #

fail :: String -> WidgetFor site a #

Functor (WidgetFor site) Source # 

Methods

fmap :: (a -> b) -> WidgetFor site a -> WidgetFor site b #

(<$) :: a -> WidgetFor site b -> WidgetFor site a #

Applicative (WidgetFor site) Source # 

Methods

pure :: a -> WidgetFor site a #

(<*>) :: WidgetFor site (a -> b) -> WidgetFor site a -> WidgetFor site b #

liftA2 :: (a -> b -> c) -> WidgetFor site a -> WidgetFor site b -> WidgetFor site c #

(*>) :: WidgetFor site a -> WidgetFor site b -> WidgetFor site b #

(<*) :: WidgetFor site a -> WidgetFor site b -> WidgetFor site a #

MonadIO (WidgetFor site) Source # 

Methods

liftIO :: IO a -> WidgetFor site a #

MonadUnliftIO (WidgetFor site) Source #

Since: 1.4.38

Methods

askUnliftIO :: WidgetFor site (UnliftIO (WidgetFor site)) #

withRunInIO :: ((forall a. WidgetFor site a -> IO a) -> IO b) -> WidgetFor site b #

MonadResource (WidgetFor site) Source # 

Methods

liftResourceT :: ResourceT IO a -> WidgetFor site a #

MonadThrow (WidgetFor site) Source # 

Methods

throwM :: Exception e => e -> WidgetFor site a #

MonadLogger (WidgetFor site) Source # 

Methods

monadLoggerLog :: ToLogStr msg => Loc -> LogSource -> LogLevel -> msg -> WidgetFor site () #

MonadLoggerIO (WidgetFor site) Source # 

Methods

askLoggerIO :: WidgetFor site (Loc -> LogSource -> LogLevel -> LogStr -> IO ()) #

MonadWidget (WidgetFor site) Source # 

Methods

liftWidget :: WidgetFor (HandlerSite (WidgetFor site)) a -> WidgetFor site a Source #

MonadHandler (WidgetFor site) Source # 

Associated Types

type HandlerSite (WidgetFor site :: * -> *) :: * Source #

type SubHandlerSite (WidgetFor site :: * -> *) :: * Source #

MonadReader (WidgetData site) (WidgetFor site) Source # 

Methods

ask :: WidgetFor site (WidgetData site) #

local :: (WidgetData site -> WidgetData site) -> WidgetFor site a -> WidgetFor site a #

reader :: (WidgetData site -> a) -> WidgetFor site a #

(~) * a () => IsString (WidgetFor site a) Source #

A String can be trivially promoted to a widget.

For example, in a yesod-scaffold site you could use:

getHomeR = do defaultLayout "Widget text"

Methods

fromString :: String -> WidgetFor site a #

(~) * a () => Semigroup (WidgetFor site a) Source # 

Methods

(<>) :: WidgetFor site a -> WidgetFor site a -> WidgetFor site a #

sconcat :: NonEmpty (WidgetFor site a) -> WidgetFor site a #

stimes :: Integral b => b -> WidgetFor site a -> WidgetFor site a #

(~) * a () => Monoid (WidgetFor site a) Source # 

Methods

mempty :: WidgetFor site a #

mappend :: WidgetFor site a -> WidgetFor site a -> WidgetFor site a #

mconcat :: [WidgetFor site a] -> WidgetFor site a #

type HandlerSite (WidgetFor site) Source # 
type HandlerSite (WidgetFor site) = site
type SubHandlerSite (WidgetFor site) Source # 
type SubHandlerSite (WidgetFor site) = site

data WidgetData site Source #

Constructors

WidgetData 

Fields

Instances

MonadReader (WidgetData site) (WidgetFor site) Source # 

Methods

ask :: WidgetFor site (WidgetData site) #

local :: (WidgetData site -> WidgetData site) -> WidgetFor site a -> WidgetFor site a #

reader :: (WidgetData site -> a) -> WidgetFor site a #

tellWidget :: GWData (Route site) -> WidgetFor site () Source #

type RY master = Route master -> [(Text, Text)] -> Text Source #

newtype CssBuilder Source #

Newtype wrapper allowing injection of arbitrary content into CSS.

Usage:

toWidget $ CssBuilder "p { color: red }"

Since: 1.1.3

Constructors

CssBuilder 

Instances

ToWidgetHead site CssBuilder Source # 

Methods

toWidgetHead :: (MonadWidget m, (* ~ HandlerSite m) site) => CssBuilder -> m () Source #

ToWidgetMedia site CssBuilder Source # 

Methods

toWidgetMedia :: (MonadWidget m, (* ~ HandlerSite m) site) => Text -> CssBuilder -> m () Source #

ToWidget site CssBuilder Source # 

Methods

toWidget :: (MonadWidget m, (* ~ HandlerSite m) site) => CssBuilder -> m () Source #

(~) * render (RY site) => ToWidgetHead site (render -> CssBuilder) Source # 

Methods

toWidgetHead :: (MonadWidget m, (* ~ HandlerSite m) site) => (render -> CssBuilder) -> m () Source #

(~) * render (RY site) => ToWidgetMedia site (render -> CssBuilder) Source # 

Methods

toWidgetMedia :: (MonadWidget m, (* ~ HandlerSite m) site) => Text -> (render -> CssBuilder) -> m () Source #

(~) * render (RY site) => ToWidget site (render -> CssBuilder) Source # 

Methods

toWidget :: (MonadWidget m, (* ~ HandlerSite m) site) => (render -> CssBuilder) -> m () Source #

data PageContent url Source #

Content for a web page. By providing this datatype, we can easily create generic site templates, which would have the type signature:

PageContent url -> HtmlUrl url

Constructors

PageContent 

Fields

type RepHtml = Html Source #

Deprecated: Please use Html instead

newtype DontFullyEvaluate a Source #

Prevents a response body from being fully evaluated before sending the request.

Since 1.1.0

Constructors

DontFullyEvaluate 

Fields

data ErrorResponse Source #

Responses to indicate some form of an error occurred.

data Header Source #

Headers to be added to a Result.

Constructors

AddCookie !SetCookie 
DeleteCookie !ByteString !ByteString

name and path

Header !(CI ByteString) !ByteString

key and value

Instances

data Location url Source #

Constructors

Local !url 
Remote !Text 

Instances

Eq url => Eq (Location url) Source # 

Methods

(==) :: Location url -> Location url -> Bool #

(/=) :: Location url -> Location url -> Bool #

Show url => Show (Location url) Source # 

Methods

showsPrec :: Int -> Location url -> ShowS #

show :: Location url -> String #

showList :: [Location url] -> ShowS #

newtype UniqueList x Source #

A diff list that does not directly enforce uniqueness. When creating a widget Yesod will use nub to make it unique.

Constructors

UniqueList ([x] -> [x]) 

data Script url Source #

Constructors

Script 

Fields

Instances

Eq url => Eq (Script url) Source # 

Methods

(==) :: Script url -> Script url -> Bool #

(/=) :: Script url -> Script url -> Bool #

Show url => Show (Script url) Source # 

Methods

showsPrec :: Int -> Script url -> ShowS #

show :: Script url -> String #

showList :: [Script url] -> ShowS #

data Stylesheet url Source #

Constructors

Stylesheet 

Fields

Instances

Eq url => Eq (Stylesheet url) Source # 

Methods

(==) :: Stylesheet url -> Stylesheet url -> Bool #

(/=) :: Stylesheet url -> Stylesheet url -> Bool #

Show url => Show (Stylesheet url) Source # 

Methods

showsPrec :: Int -> Stylesheet url -> ShowS #

show :: Stylesheet url -> String #

showList :: [Stylesheet url] -> ShowS #

newtype Title Source #

Constructors

Title 

Fields

newtype Head url Source #

Constructors

Head (HtmlUrl url) 

Instances

Semigroup (Head url) Source # 

Methods

(<>) :: Head url -> Head url -> Head url #

sconcat :: NonEmpty (Head url) -> Head url #

stimes :: Integral b => b -> Head url -> Head url #

Monoid (Head url) Source # 

Methods

mempty :: Head url #

mappend :: Head url -> Head url -> Head url #

mconcat :: [Head url] -> Head url #

newtype Body url Source #

Constructors

Body (HtmlUrl url) 

Instances

Semigroup (Body url) Source # 

Methods

(<>) :: Body url -> Body url -> Body url #

sconcat :: NonEmpty (Body url) -> Body url #

stimes :: Integral b => b -> Body url -> Body url #

Monoid (Body url) Source # 

Methods

mempty :: Body url #

mappend :: Body url -> Body url -> Body url #

mconcat :: [Body url] -> Body url #

type CssBuilderUrl a = (a -> [(Text, Text)] -> Text) -> Builder Source #

data GWData a Source #

Constructors

GWData 

Instances

Semigroup (GWData a) Source # 

Methods

(<>) :: GWData a -> GWData a -> GWData a #

sconcat :: NonEmpty (GWData a) -> GWData a #

stimes :: Integral b => b -> GWData a -> GWData a #

Monoid (GWData a) Source # 

Methods

mempty :: GWData a #

mappend :: GWData a -> GWData a -> GWData a #

mconcat :: [GWData a] -> GWData a #

newtype SubHandlerFor sub master a Source #

A handler monad for subsite

Since: 1.6.0

Constructors

SubHandlerFor 

Fields

Instances

Monad (SubHandlerFor child master) Source # 

Methods

(>>=) :: SubHandlerFor child master a -> (a -> SubHandlerFor child master b) -> SubHandlerFor child master b #

(>>) :: SubHandlerFor child master a -> SubHandlerFor child master b -> SubHandlerFor child master b #

return :: a -> SubHandlerFor child master a #

fail :: String -> SubHandlerFor child master a #

Functor (SubHandlerFor sub master) Source # 

Methods

fmap :: (a -> b) -> SubHandlerFor sub master a -> SubHandlerFor sub master b #

(<$) :: a -> SubHandlerFor sub master b -> SubHandlerFor sub master a #

Applicative (SubHandlerFor child master) Source # 

Methods

pure :: a -> SubHandlerFor child master a #

(<*>) :: SubHandlerFor child master (a -> b) -> SubHandlerFor child master a -> SubHandlerFor child master b #

liftA2 :: (a -> b -> c) -> SubHandlerFor child master a -> SubHandlerFor child master b -> SubHandlerFor child master c #

(*>) :: SubHandlerFor child master a -> SubHandlerFor child master b -> SubHandlerFor child master b #

(<*) :: SubHandlerFor child master a -> SubHandlerFor child master b -> SubHandlerFor child master a #

MonadIO (SubHandlerFor child master) Source # 

Methods

liftIO :: IO a -> SubHandlerFor child master a #

MonadUnliftIO (SubHandlerFor child master) Source #

Since: 1.4.38

Methods

askUnliftIO :: SubHandlerFor child master (UnliftIO (SubHandlerFor child master)) #

withRunInIO :: ((forall a. SubHandlerFor child master a -> IO a) -> IO b) -> SubHandlerFor child master b #

MonadResource (SubHandlerFor child master) Source # 

Methods

liftResourceT :: ResourceT IO a -> SubHandlerFor child master a #

MonadThrow (SubHandlerFor child master) Source # 

Methods

throwM :: Exception e => e -> SubHandlerFor child master a #

MonadLogger (SubHandlerFor child master) Source # 

Methods

monadLoggerLog :: ToLogStr msg => Loc -> LogSource -> LogLevel -> msg -> SubHandlerFor child master () #

MonadLoggerIO (SubHandlerFor child master) Source # 

Methods

askLoggerIO :: SubHandlerFor child master (Loc -> LogSource -> LogLevel -> LogStr -> IO ()) #

MonadHandler (SubHandlerFor sub master) Source # 

Associated Types

type HandlerSite (SubHandlerFor sub master :: * -> *) :: * Source #

type SubHandlerSite (SubHandlerFor sub master :: * -> *) :: * Source #

MonadReader (HandlerData child master) (SubHandlerFor child master) Source # 

Methods

ask :: SubHandlerFor child master (HandlerData child master) #

local :: (HandlerData child master -> HandlerData child master) -> SubHandlerFor child master a -> SubHandlerFor child master a #

reader :: (HandlerData child master -> a) -> SubHandlerFor child master a #

type HandlerSite (SubHandlerFor sub master) Source # 
type HandlerSite (SubHandlerFor sub master) = master
type SubHandlerSite (SubHandlerFor sub master) Source # 
type SubHandlerSite (SubHandlerFor sub master) = sub