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

Safe Haskell | None
Language | Haskell2010

Yesod.Core.Types

Synopsis

- type SessionMap = Map Text ByteString
- type SaveSession = SessionMap -> IO [Header]
- newtype SessionBackend = SessionBackend {
  - sbLoadSession :: Request -> IO (SessionMap, SaveSession)
  }
- data SessionCookie = SessionCookie !(Either UTCTime ByteString) !ByteString !SessionMap
- data ClientSessionDateCache = ClientSessionDateCache {
  - csdcNow :: !UTCTime
  - csdcExpires :: !UTCTime
  - csdcExpiresSerialized :: !ByteString
  }
- data YesodRequest = YesodRequest {
  - reqGetParams :: ![(Text, Text)]
  - reqCookies :: ![(Text, Text)]
  - reqWaiRequest :: !Request
  - reqLangs :: ![Text]
  - reqToken :: !(Maybe Text)
  - reqSession :: !SessionMap
  - reqAccept :: ![ContentType]
  }
- data YesodResponse
  - = YRWai !Response
  - | YRWaiApp !Application
  - | YRPlain !Status ![Header] !ContentType !Content !SessionMap
- type RequestBodyContents = ([(Text, Text)], [(Text, FileInfo)])
- data FileInfo = FileInfo {
  - fileName :: !Text
  - fileContentType :: !Text
  - fileSourceRaw :: !(ConduitT () ByteString (ResourceT IO) ())
  - fileMove :: !(FilePath -> IO ())
  }
- data FileUpload
  - = FileUploadMemory !(BackEnd ByteString)
  - | FileUploadDisk !(InternalState -> BackEnd FilePath)
  - | FileUploadSource !(BackEnd (ConduitT () ByteString (ResourceT IO) ()))
- data Approot master
  - = ApprootRelative
  - | ApprootStatic !Text
  - | ApprootMaster !(master -> Text)
  - | ApprootRequest !(master -> Request -> Text)
- type ResolvedApproot = Text
- data AuthResult
  - = Authorized
  - | AuthenticationRequired
  - | Unauthorized !Text
- data ScriptLoadPosition master
  - = BottomOfBody
  - | BottomOfHeadBlocking
  - | BottomOfHeadAsync !(BottomOfHeadAsync master)
- type BottomOfHeadAsync master = [Text] -> Maybe (HtmlUrl (Route master)) -> HtmlUrl (Route master)
- type Texts = [Text]
- newtype WaiSubsite = WaiSubsite {
  - runWaiSubsite :: Application
  }
- newtype WaiSubsiteWithAuth = WaiSubsiteWithAuth {
  - runWaiSubsiteWithAuth :: Application
  }
- data RunHandlerEnv child site = RunHandlerEnv {
  - rheRender :: !(Route site -> [(Text, Text)] -> Text)
  - rheRoute :: !(Maybe (Route child))
  - rheRouteToMaster :: !(Route child -> Route site)
  - rheSite :: !site
  - rheChild :: !child
  - rheUpload :: !(RequestBodyLength -> FileUpload)
  - rheLog :: !(Loc -> LogSource -> LogLevel -> LogStr -> IO ())
  - rheOnError :: !(ErrorResponse -> YesodApp)
  - rheMaxExpires :: !Text
  - rheCatchHandlerExceptions :: !(forall a (m :: Type -> Type). MonadUnliftIO m => m a -> (SomeException -> m a) -> m a)
  }
- data HandlerData child site = HandlerData {
  - handlerRequest :: !YesodRequest
  - handlerEnv :: !(RunHandlerEnv child site)
  - handlerState :: !(IORef GHState)
  - handlerResource :: !InternalState
  }
- data YesodRunnerEnv site = YesodRunnerEnv {
  - yreLogger :: !Logger
  - yreSite :: !site
  - yreSessionBackend :: !(Maybe SessionBackend)
  - yreGen :: !(IO Int)
  - yreGetMaxExpires :: !(IO Text)
  }
- data YesodSubRunnerEnv sub parent = YesodSubRunnerEnv {
  - ysreParentRunner :: !(ParentRunner parent)
  - ysreGetSub :: !(parent -> sub)
  - ysreToParentRoute :: !(Route sub -> Route parent)
  - ysreParentEnv :: !(YesodRunnerEnv parent)
  }
- type ParentRunner parent = HandlerFor parent TypedContent -> YesodRunnerEnv parent -> Maybe (Route parent) -> Application
- newtype HandlerFor site a = HandlerFor {
  - unHandlerFor :: HandlerData site site -> IO a
  }
- data GHState = GHState {
  - ghsSession :: !SessionMap
  - ghsRBC :: !(Maybe RequestBodyContents)
  - ghsIdent :: !Int
  - ghsCache :: !TypeMap
  - ghsCacheBy :: !KeyedTypeMap
  - ghsHeaders :: !(Endo [Header])
  }
- type YesodApp = YesodRequest -> ResourceT IO YesodResponse
- newtype WidgetFor site a = WidgetFor {
  - unWidgetFor :: WidgetData site -> IO a
  }
- data WidgetData site = WidgetData {
  - wdRef :: !(IORef (GWData (Route site)))
  - wdHandler :: !(HandlerData site site)
  }
- tellWidget :: GWData (Route site) -> WidgetFor site ()
- type RY master = Route master -> [(Text, Text)] -> Text
- newtype CssBuilder = CssBuilder {
  - unCssBuilder :: Builder
  }
- data PageContent url = PageContent {
  - pageTitle :: !Html
  - pageDescription :: !(Maybe Text)
  - pageHead :: !(HtmlUrl url)
  - pageBody :: !(HtmlUrl url)
  }
- data Content
  - = ContentBuilder !Builder !(Maybe Int)
  - | ContentSource !(ConduitT () (Flush Builder) (ResourceT IO) ())
  - | ContentFile !FilePath !(Maybe FilePart)
  - | ContentDontEvaluate !Content
- data TypedContent = TypedContent !ContentType !Content
- type RepHtml = Html
- newtype RepJson = RepJson Content
- newtype RepPlain = RepPlain Content
- newtype RepXml = RepXml Content
- type ContentType = ByteString
- data JSONResponse a where
  - JSONResponse :: forall a. ToJSON a => a -> JSONResponse a
- newtype DontFullyEvaluate a = DontFullyEvaluate {
  - unDontFullyEvaluate :: a
  }
- data ErrorResponse
  - = NotFound
  - | InternalError !Text
  - | InvalidArgs ![Text]
  - | NotAuthenticated
  - | PermissionDenied !Text
  - | BadMethod !Method
- data Header
  - = AddCookie !SetCookie
  - | DeleteCookie !ByteString !ByteString
  - | Header !(CI ByteString) !ByteString
- data Location url
  - = Local !url
  - | Remote !Text
- newtype UniqueList x = UniqueList ([x] -> [x])
- data Script url = Script {
  - scriptLocation :: !(Location url)
  - scriptAttributes :: ![(Text, Text)]
  }
- data Stylesheet url = Stylesheet {
  - styleLocation :: !(Location url)
  - styleAttributes :: ![(Text, Text)]
  }
- newtype Title = Title {
  - unTitle :: Html
  }
- newtype Description = Description {
  - unDescription :: Text
  }
- newtype Head url = Head (HtmlUrl url)
- newtype Body url = Body (HtmlUrl url)
- type CssBuilderUrl a = (a -> [(Text, Text)] -> Text) -> Builder
- data GWData a = GWData {
  - gwdBody :: !(Body a)
  - gwdTitle :: !(Last Title)
  - gwdDescription :: !(Last Description)
  - gwdScripts :: !(UniqueList (Script a))
  - gwdStylesheets :: !(UniqueList (Stylesheet a))
  - gwdCss :: !(Map (Maybe Text) (CssBuilderUrl a))
  - gwdJavascript :: !(Maybe (JavascriptUrl a))
  - gwdHead :: !(Head a)
  }
- data HandlerContents
  - = HCContent !Status !TypedContent
  - | HCError !ErrorResponse
  - | HCSendFile !ContentType !FilePath !(Maybe FilePart)
  - | HCRedirect !Status !Text
  - | HCCreated !Text
  - | HCWai !Response
  - | HCWaiApp !Application
- data Logger = Logger {
  - loggerSet :: !LoggerSet
  - loggerDate :: !DateCacheGetter
  }
- loggerPutStr :: Logger -> LogStr -> IO ()
- newtype SubHandlerFor sub master a = SubHandlerFor {
  - unSubHandlerFor :: HandlerData sub master -> IO a
  }

# Documentation

type SessionMap = Map Text ByteString #

type SaveSession #

Arguments

= SessionMap | The session contents after running the handler
-> IO [Header] |

newtype SessionBackend #

Constructors

SessionBackend |

Fields

- sbLoadSession :: Request -> IO (SessionMap, SaveSession)

  Return the session data and a function to save the session

data SessionCookie #

Constructors

SessionCookie !(Either UTCTime ByteString) !ByteString !SessionMap |

#### Instances

Instances details

Serialize SessionCookie # |
Instance details Defined in Yesod.Core.Types Methods put :: Putter SessionCookie # get :: Get SessionCookie #
Read SessionCookie # |
Instance details Defined in Yesod.Core.Types Methods readsPrec :: Int -> ReadS SessionCookie # readList :: ReadS [SessionCookie] # readPrec :: ReadPrec SessionCookie # readListPrec :: ReadPrec [SessionCookie] #
Show SessionCookie # |
Instance details Defined in Yesod.Core.Types Methods showsPrec :: Int -> SessionCookie -> ShowS # show :: SessionCookie -> String # showList :: [SessionCookie] -> ShowS #

data ClientSessionDateCache #

Constructors

ClientSessionDateCache |

Fields

- csdcNow :: !UTCTime
- csdcExpires :: !UTCTime
- csdcExpiresSerialized :: !ByteString

#### Instances

Instances details

Show ClientSessionDateCache # |
Instance details Defined in Yesod.Core.Types Methods showsPrec :: Int -> ClientSessionDateCache -> ShowS # show :: ClientSessionDateCache -> String # showList :: [ClientSessionDateCache] -> ShowS #
Eq ClientSessionDateCache # |
Instance details Defined in Yesod.Core.Types Methods (==) :: ClientSessionDateCache -> ClientSessionDateCache -> Bool # (/=) :: ClientSessionDateCache -> ClientSessionDateCache -> Bool #

data YesodRequest #

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

Constructors

YesodRequest |

Fields

- reqGetParams :: ![(Text, Text)]

  Same as `queryString`, but decoded to `Text`.

- reqCookies :: ![(Text, Text)]
- reqWaiRequest :: !Request
- reqLangs :: ![Text]

  Languages which the client supports. This is an ordered list by preference.

- reqToken :: !(Maybe Text)

  A random, session-specific token used to prevent CSRF attacks.

- reqSession :: !SessionMap

  Initial session sent from the client.

  Since 1.2.0

- reqAccept :: ![ContentType]

  An ordered list of the accepted content types.

  Since 1.2.0

data YesodResponse #

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

Constructors

YRWai !Response |
YRWaiApp !Application |
YRPlain !Status ![Header] !ContentType !Content !SessionMap |

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

A tuple containing both the POST parameters and submitted files.

data FileInfo #

Constructors

FileInfo |

Fields

- fileName :: !Text
- fileContentType :: !Text
- fileSourceRaw :: !(ConduitT () ByteString (ResourceT IO) ())
- fileMove :: !(FilePath -> IO ())

data FileUpload #

Constructors

FileUploadMemory !(BackEnd ByteString) |
FileUploadDisk !(InternalState -> BackEnd FilePath) |
FileUploadSource !(BackEnd (ConduitT () ByteString (ResourceT IO) ())) |

data Approot master #

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 ResolvedApproot = Text #

data AuthResult #

Constructors

Authorized |
AuthenticationRequired |
Unauthorized !Text |

#### Instances

Instances details

Read AuthResult # |
Instance details Defined in Yesod.Core.Types Methods readsPrec :: Int -> ReadS AuthResult # readList :: ReadS [AuthResult] # readPrec :: ReadPrec AuthResult # readListPrec :: ReadPrec [AuthResult] #
Show AuthResult # |
Instance details Defined in Yesod.Core.Types Methods showsPrec :: Int -> AuthResult -> ShowS # show :: AuthResult -> String # showList :: [AuthResult] -> ShowS #
Eq AuthResult # |
Instance details Defined in Yesod.Core.Types Methods (==) :: AuthResult -> AuthResult -> Bool # (/=) :: AuthResult -> AuthResult -> Bool #

data ScriptLoadPosition master #

Constructors

BottomOfBody |
BottomOfHeadBlocking |
BottomOfHeadAsync !(BottomOfHeadAsync master) |

type BottomOfHeadAsync master #

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] #

newtype WaiSubsite #

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

Constructors

WaiSubsite |

Fields

- runWaiSubsite :: Application

#### Instances

Instances details

ParseRoute WaiSubsite # |
Instance details Defined in Yesod.Core.Types Methods parseRoute :: ([Text], [(Text, Text)]) -> Maybe (Route WaiSubsite) #
RenderRoute WaiSubsite # |

Instance details

Defined in Yesod.Core.Types

Associated Types

data Route WaiSubsite |
Instance details Defined in Yesod.Core.Types data Route WaiSubsite = WaiSubsiteRoute [Text] [(Text, Text)]

Methods

renderRoute :: Route WaiSubsite -> ([Text], [(Text, Text)]) #

YesodSubDispatch WaiSubsite master # |
Instance details Defined in Yesod.Core.Class.Dispatch Methods yesodSubDispatch :: YesodSubRunnerEnv WaiSubsite master -> Application #
Read (Route WaiSubsite) # |
Instance details Defined in Yesod.Core.Types Methods readsPrec :: Int -> ReadS (Route WaiSubsite) # readList :: ReadS [Route WaiSubsite] # readPrec :: ReadPrec (Route WaiSubsite) # readListPrec :: ReadPrec [Route WaiSubsite] #
Show (Route WaiSubsite) # |
Instance details Defined in Yesod.Core.Types Methods showsPrec :: Int -> Route WaiSubsite -> ShowS # show :: Route WaiSubsite -> String # showList :: [Route WaiSubsite] -> ShowS #
Eq (Route WaiSubsite) # |
Instance details Defined in Yesod.Core.Types Methods (==) :: Route WaiSubsite -> Route WaiSubsite -> Bool # (/=) :: Route WaiSubsite -> Route WaiSubsite -> Bool #
Ord (Route WaiSubsite) # |

Instance details

Defined in Yesod.Core.Types

Methods

compare :: Route WaiSubsite -> Route WaiSubsite -> Ordering #

(<) :: Route WaiSubsite -> Route WaiSubsite -> Bool #

(<=) :: Route WaiSubsite -> Route WaiSubsite -> Bool #

(>) :: Route WaiSubsite -> Route WaiSubsite -> Bool #

(>=) :: Route WaiSubsite -> Route WaiSubsite -> Bool #

max :: Route WaiSubsite -> Route WaiSubsite -> Route WaiSubsite #

min :: Route WaiSubsite -> Route WaiSubsite -> Route WaiSubsite #

data Route WaiSubsite # |
Instance details Defined in Yesod.Core.Types data Route WaiSubsite = WaiSubsiteRoute [Text] [(Text, Text)]

newtype WaiSubsiteWithAuth #

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

Since: 1.4.34

Constructors

WaiSubsiteWithAuth |

Fields

- runWaiSubsiteWithAuth :: Application

#### Instances

Instances details

ParseRoute WaiSubsiteWithAuth # |
Instance details Defined in Yesod.Core.Types Methods parseRoute :: ([Text], [(Text, Text)]) -> Maybe (Route WaiSubsiteWithAuth) #
RenderRoute WaiSubsiteWithAuth # |

Instance details

Defined in Yesod.Core.Types

Associated Types

data Route WaiSubsiteWithAuth |
Instance details Defined in Yesod.Core.Types data Route WaiSubsiteWithAuth = WaiSubsiteWithAuthRoute [Text] [(Text, Text)]

Methods

renderRoute :: Route WaiSubsiteWithAuth -> ([Text], [(Text, Text)]) #

YesodSubDispatch WaiSubsiteWithAuth master # |
Instance details Defined in Yesod.Core.Class.Dispatch Methods yesodSubDispatch :: YesodSubRunnerEnv WaiSubsiteWithAuth master -> Application #
Read (Route WaiSubsiteWithAuth) # |
Instance details Defined in Yesod.Core.Types Methods readsPrec :: Int -> ReadS (Route WaiSubsiteWithAuth) # readList :: ReadS [Route WaiSubsiteWithAuth] # readPrec :: ReadPrec (Route WaiSubsiteWithAuth) # readListPrec :: ReadPrec [Route WaiSubsiteWithAuth] #
Show (Route WaiSubsiteWithAuth) # |
Instance details Defined in Yesod.Core.Types Methods showsPrec :: Int -> Route WaiSubsiteWithAuth -> ShowS # show :: Route WaiSubsiteWithAuth -> String # showList :: [Route WaiSubsiteWithAuth] -> ShowS #
Eq (Route WaiSubsiteWithAuth) # |
Instance details Defined in Yesod.Core.Types Methods (==) :: Route WaiSubsiteWithAuth -> Route WaiSubsiteWithAuth -> Bool # (/=) :: Route WaiSubsiteWithAuth -> Route WaiSubsiteWithAuth -> Bool #
Ord (Route WaiSubsiteWithAuth) # |

Instance details

Defined in Yesod.Core.Types

Methods

compare :: Route WaiSubsiteWithAuth -> Route WaiSubsiteWithAuth -> Ordering #

(<) :: Route WaiSubsiteWithAuth -> Route WaiSubsiteWithAuth -> Bool #

(<=) :: Route WaiSubsiteWithAuth -> Route WaiSubsiteWithAuth -> Bool #

(>) :: Route WaiSubsiteWithAuth -> Route WaiSubsiteWithAuth -> Bool #

(>=) :: Route WaiSubsiteWithAuth -> Route WaiSubsiteWithAuth -> Bool #

max :: Route WaiSubsiteWithAuth -> Route WaiSubsiteWithAuth -> Route WaiSubsiteWithAuth #

min :: Route WaiSubsiteWithAuth -> Route WaiSubsiteWithAuth -> Route WaiSubsiteWithAuth #

data Route WaiSubsiteWithAuth # |
Instance details Defined in Yesod.Core.Types data Route WaiSubsiteWithAuth = WaiSubsiteWithAuthRoute [Text] [(Text, Text)]

data RunHandlerEnv child site #

Constructors

RunHandlerEnv |

Fields

- rheRender :: !(Route site -> [(Text, Text)] -> Text)
- rheRoute :: !(Maybe (Route child))
- rheRouteToMaster :: !(Route child -> Route site)
- rheSite :: !site
- rheChild :: !child
- rheUpload :: !(RequestBodyLength -> FileUpload)
- rheLog :: !(Loc -> LogSource -> LogLevel -> LogStr -> IO ())
- rheOnError :: !(ErrorResponse -> YesodApp)

  How to respond when an error is thrown internally.

  Since 1.2.0

- rheMaxExpires :: !Text
- rheCatchHandlerExceptions :: !(forall a (m :: Type -> Type). MonadUnliftIO m => m a -> (SomeException -> m a) -> m a)

  catch function for rendering 500 pages on exceptions. by default this is catch from unliftio (rethrows all async exceptions).

  Since: 1.6.24.0

data HandlerData child site #

Constructors

HandlerData |

Fields

- handlerRequest :: !YesodRequest
- handlerEnv :: !(RunHandlerEnv child site)
- handlerState :: !(IORef GHState)
- handlerResource :: !InternalState

#### Instances

Instances details

MonadReader (HandlerData site site) (HandlerFor site) # |
Instance details Defined in Yesod.Core.Types 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) # |
Instance details Defined in Yesod.Core.Types 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 #

Constructors

YesodRunnerEnv |

Fields

- yreLogger :: !Logger
- yreSite :: !site
- yreSessionBackend :: !(Maybe SessionBackend)
- yreGen :: !(IO Int)

  Generate a random number uniformly distributed in the full range of `Int`.

  Note: Before 1.6.20, the default value generates pseudo-random number in an unspecified range. The range size may not be a power of 2. Since 1.6.20, the default value uses a secure entropy source and generates in the full range of `Int`.

- yreGetMaxExpires :: !(IO Text)

data YesodSubRunnerEnv sub parent #

Constructors

YesodSubRunnerEnv |

Fields

- ysreParentRunner :: !(ParentRunner parent)
- ysreGetSub :: !(parent -> sub)
- ysreToParentRoute :: !(Route sub -> Route parent)
- ysreParentEnv :: !(YesodRunnerEnv parent)

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

newtype HandlerFor site a #

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

Constructors

HandlerFor |

Fields

- unHandlerFor :: HandlerData site site -> IO a

#### Instances

Instances details

MonadIO (HandlerFor site) # |
Instance details Defined in Yesod.Core.Types Methods liftIO :: IO a -> HandlerFor site a #
MonadThrow (HandlerFor site) # |
Instance details Defined in Yesod.Core.Types Methods throwM :: (HasCallStack, Exception e) => e -> HandlerFor site a #
Applicative (HandlerFor site) # |
Instance details Defined in Yesod.Core.Types 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 #
Functor (HandlerFor site) # |
Instance details Defined in Yesod.Core.Types Methods fmap :: (a -> b) -> HandlerFor site a -> HandlerFor site b # (<$) :: a -> HandlerFor site b -> HandlerFor site a #
Monad (HandlerFor site) # |
Instance details Defined in Yesod.Core.Types 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 #
MonadLogger (HandlerFor site) # |
Instance details Defined in Yesod.Core.Types Methods monadLoggerLog :: ToLogStr msg => Loc -> LogSource -> LogLevel -> msg -> HandlerFor site () #
MonadLoggerIO (HandlerFor site) # |
Instance details Defined in Yesod.Core.Types Methods askLoggerIO :: HandlerFor site (Loc -> LogSource -> LogLevel -> LogStr -> IO ()) #
PrimMonad (HandlerFor site) # | Since: 1.6.7

Instance details

Defined in Yesod.Core.Types

Associated Types

type PrimState (HandlerFor site) |
Instance details Defined in Yesod.Core.Types type PrimState (HandlerFor site) = PrimState IO

Methods

primitive :: (State# (PrimState (HandlerFor site)) -> (# State# (PrimState (HandlerFor site)), a #)) -> HandlerFor site a #

MonadResource (HandlerFor site) # |
Instance details Defined in Yesod.Core.Types Methods liftResourceT :: ResourceT IO a -> HandlerFor site a #
MonadUnliftIO (HandlerFor site) # | Since: 1.4.38
Instance details Defined in Yesod.Core.Types Methods withRunInIO :: ((forall a. HandlerFor site a -> IO a) -> IO b) -> HandlerFor site b #
MonadHandler (HandlerFor site) # |

Instance details

Defined in Yesod.Core.Class.Handler

Associated Types

type HandlerSite (HandlerFor site) |
Instance details Defined in Yesod.Core.Class.Handler type HandlerSite (HandlerFor site) = site
type SubHandlerSite (HandlerFor site) |
Instance details Defined in Yesod.Core.Class.Handler type SubHandlerSite (HandlerFor site) = site

Methods

liftHandler :: HandlerFor (HandlerSite (HandlerFor site)) a -> HandlerFor site a #

liftSubHandler :: SubHandlerFor (SubHandlerSite (HandlerFor site)) (HandlerSite (HandlerFor site)) a -> HandlerFor site a #

MonadReader (HandlerData site site) (HandlerFor site) # |
Instance details Defined in Yesod.Core.Types 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 PrimState (HandlerFor site) # |
Instance details Defined in Yesod.Core.Types type PrimState (HandlerFor site) = PrimState IO
type HandlerSite (HandlerFor site) # |
Instance details Defined in Yesod.Core.Class.Handler type HandlerSite (HandlerFor site) = site
type SubHandlerSite (HandlerFor site) # |
Instance details Defined in Yesod.Core.Class.Handler type SubHandlerSite (HandlerFor site) = site

data GHState #

Constructors

GHState |

Fields

- ghsSession :: !SessionMap
- ghsRBC :: !(Maybe RequestBodyContents)
- ghsIdent :: !Int
- ghsCache :: !TypeMap
- ghsCacheBy :: !KeyedTypeMap
- ghsHeaders :: !(Endo [Header])

type YesodApp = YesodRequest -> ResourceT IO YesodResponse #

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 `HandlerFor` monad and template haskell code should hide it away.

newtype WidgetFor site a #

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

- unWidgetFor :: WidgetData site -> IO a

#### Instances

Instances details

(site' ~ site, a ~ ()) => ToWidget site' (WidgetFor site a) # |
Instance details Defined in Yesod.Core.Widget Methods toWidget :: (MonadWidget m, HandlerSite m ~ site') => WidgetFor site a -> m () #
MonadIO (WidgetFor site) # |
Instance details Defined in Yesod.Core.Types Methods liftIO :: IO a -> WidgetFor site a #
MonadThrow (WidgetFor site) # |
Instance details Defined in Yesod.Core.Types Methods throwM :: (HasCallStack, Exception e) => e -> WidgetFor site a #
Applicative (WidgetFor site) # |
Instance details Defined in Yesod.Core.Types 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 #
Functor (WidgetFor site) # |
Instance details Defined in Yesod.Core.Types Methods fmap :: (a -> b) -> WidgetFor site a -> WidgetFor site b # (<$) :: a -> WidgetFor site b -> WidgetFor site a #
Monad (WidgetFor site) # |
Instance details Defined in Yesod.Core.Types 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 #
MonadLogger (WidgetFor site) # |
Instance details Defined in Yesod.Core.Types Methods monadLoggerLog :: ToLogStr msg => Loc -> LogSource -> LogLevel -> msg -> WidgetFor site () #
MonadLoggerIO (WidgetFor site) # |
Instance details Defined in Yesod.Core.Types Methods askLoggerIO :: WidgetFor site (Loc -> LogSource -> LogLevel -> LogStr -> IO ()) #
PrimMonad (WidgetFor site) # | Since: 1.6.7

Instance details

Defined in Yesod.Core.Types

Associated Types

type PrimState (WidgetFor site) |
Instance details Defined in Yesod.Core.Types type PrimState (WidgetFor site) = PrimState IO

Methods

primitive :: (State# (PrimState (WidgetFor site)) -> (# State# (PrimState (WidgetFor site)), a #)) -> WidgetFor site a #

MonadResource (WidgetFor site) # |
Instance details Defined in Yesod.Core.Types Methods liftResourceT :: ResourceT IO a -> WidgetFor site a #
MonadUnliftIO (WidgetFor site) # | Since: 1.4.38
Instance details Defined in Yesod.Core.Types Methods withRunInIO :: ((forall a. WidgetFor site a -> IO a) -> IO b) -> WidgetFor site b #
MonadHandler (WidgetFor site) # |

Instance details

Defined in Yesod.Core.Class.Handler

Associated Types

type HandlerSite (WidgetFor site) |
Instance details Defined in Yesod.Core.Class.Handler type HandlerSite (WidgetFor site) = site
type SubHandlerSite (WidgetFor site) |
Instance details Defined in Yesod.Core.Class.Handler type SubHandlerSite (WidgetFor site) = site

Methods

liftHandler :: HandlerFor (HandlerSite (WidgetFor site)) a -> WidgetFor site a #

liftSubHandler :: SubHandlerFor (SubHandlerSite (WidgetFor site)) (HandlerSite (WidgetFor site)) a -> WidgetFor site a #

MonadWidget (WidgetFor site) # |
Instance details Defined in Yesod.Core.Class.Handler Methods liftWidget :: WidgetFor (HandlerSite (WidgetFor site)) a -> WidgetFor site a #
MonadReader (WidgetData site) (WidgetFor site) # |
Instance details Defined in Yesod.Core.Types 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 ~ () => Monoid (WidgetFor site a) # |
Instance details Defined in Yesod.Core.Types Methods mempty :: WidgetFor site a # mappend :: WidgetFor site a -> WidgetFor site a -> WidgetFor site a # mconcat :: [WidgetFor site a] -> WidgetFor site a #
a ~ () => Semigroup (WidgetFor site a) # |
Instance details Defined in Yesod.Core.Types 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 ~ () => IsString (WidgetFor site a) #

A `String` can be trivially promoted to a widget.

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

    getHomeR = do defaultLayout "Widget text"

Instance details Defined in Yesod.Core.Types Methods fromString :: String -> WidgetFor site a #
type PrimState (WidgetFor site) # |
Instance details Defined in Yesod.Core.Types type PrimState (WidgetFor site) = PrimState IO
type HandlerSite (WidgetFor site) # |
Instance details Defined in Yesod.Core.Class.Handler type HandlerSite (WidgetFor site) = site
type SubHandlerSite (WidgetFor site) # |
Instance details Defined in Yesod.Core.Class.Handler type SubHandlerSite (WidgetFor site) = site

data WidgetData site #

Constructors

WidgetData |

Fields

- wdRef :: !(IORef (GWData (Route site)))
- wdHandler :: !(HandlerData site site)

#### Instances

Instances details

MonadReader (WidgetData site) (WidgetFor site) # |
Instance details Defined in Yesod.Core.Types 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 () #

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

newtype CssBuilder #

Newtype wrapper allowing injection of arbitrary content into CSS.

Usage:

    toWidget $ CssBuilder "p { color: red }"

Since: 1.1.3

Constructors

CssBuilder |

Fields

- unCssBuilder :: Builder

#### Instances

Instances details

ToWidget site CssBuilder # |
Instance details Defined in Yesod.Core.Widget Methods toWidget :: (MonadWidget m, HandlerSite m ~ site) => CssBuilder -> m () #
ToWidgetHead site CssBuilder # |
Instance details Defined in Yesod.Core.Widget Methods toWidgetHead :: (MonadWidget m, HandlerSite m ~ site) => CssBuilder -> m () #
ToWidgetMedia site CssBuilder # |
Instance details Defined in Yesod.Core.Widget Methods toWidgetMedia :: (MonadWidget m, HandlerSite m ~ site) => Text -> CssBuilder -> m () #
render ~ RY site => ToWidget site (render -> CssBuilder) # |
Instance details Defined in Yesod.Core.Widget Methods toWidget :: (MonadWidget m, HandlerSite m ~ site) => (render -> CssBuilder) -> m () #
render ~ RY site => ToWidgetHead site (render -> CssBuilder) # |
Instance details Defined in Yesod.Core.Widget Methods toWidgetHead :: (MonadWidget m, HandlerSite m ~ site) => (render -> CssBuilder) -> m () #
render ~ RY site => ToWidgetMedia site (render -> CssBuilder) # |
Instance details Defined in Yesod.Core.Widget Methods toWidgetMedia :: (MonadWidget m, HandlerSite m ~ site) => Text -> (render -> CssBuilder) -> m () #

data PageContent url #

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

- pageTitle :: !Html
- pageDescription :: !(Maybe Text)
- pageHead :: !(HtmlUrl url)
- pageBody :: !(HtmlUrl url)

data Content #

Constructors

ContentBuilder !Builder !(Maybe Int) | The content and optional content length.
ContentSource !(ConduitT () (Flush Builder) (ResourceT IO) ()) |
ContentFile !FilePath !(Maybe FilePart) |
ContentDontEvaluate !Content |

#### Instances

Instances details

IsString Content # |
Instance details Defined in Yesod.Core.Types Methods fromString :: String -> Content #
ToContent Content # |
Instance details Defined in Yesod.Core.Content Methods toContent :: Content -> Content #
ToContent (ContentType, Content) # |
Instance details Defined in Yesod.Core.Content Methods toContent :: (ContentType, Content) -> Content #
ToTypedContent (ContentType, Content) # |
Instance details Defined in Yesod.Core.Content Methods toTypedContent :: (ContentType, Content) -> TypedContent #

data TypedContent #

Constructors

TypedContent !ContentType !Content |

#### Instances

Instances details

ToContent TypedContent # |
Instance details Defined in Yesod.Core.Content Methods toContent :: TypedContent -> Content #
ToTypedContent TypedContent # |
Instance details Defined in Yesod.Core.Content Methods toTypedContent :: TypedContent -> TypedContent #

type RepHtml = Html #

Deprecated: Please use Html instead

newtype RepJson #

Constructors

RepJson Content |

#### Instances

Instances details

HasContentType RepJson # |
Instance details Defined in Yesod.Core.Content Methods getContentType :: Monad m => m RepJson -> ContentType #
ToContent RepJson # |
Instance details Defined in Yesod.Core.Content Methods toContent :: RepJson -> Content #
ToTypedContent RepJson # |
Instance details Defined in Yesod.Core.Content Methods toTypedContent :: RepJson -> TypedContent #

newtype RepPlain #

Constructors

RepPlain Content |

#### Instances

Instances details

HasContentType RepPlain # |
Instance details Defined in Yesod.Core.Content Methods getContentType :: Monad m => m RepPlain -> ContentType #
ToContent RepPlain # |
Instance details Defined in Yesod.Core.Content Methods toContent :: RepPlain -> Content #
ToTypedContent RepPlain # |
Instance details Defined in Yesod.Core.Content Methods toTypedContent :: RepPlain -> TypedContent #

newtype RepXml #

Constructors

RepXml Content |

#### Instances

Instances details

HasContentType RepXml # |
Instance details Defined in Yesod.Core.Content Methods getContentType :: Monad m => m RepXml -> ContentType #
ToContent RepXml # |
Instance details Defined in Yesod.Core.Content Methods toContent :: RepXml -> Content #
ToTypedContent RepXml # |
Instance details Defined in Yesod.Core.Content Methods toTypedContent :: RepXml -> TypedContent #

type ContentType = ByteString #

data JSONResponse a where #

Wrapper around types so that Handlers can return a domain type, even when the data will eventually be encoded as JSON. Example usage in a type signature:

    postSignupR :: Handler (JSONResponse CreateUserResponse)

And in the implementation:

    return $ JSONResponse $ CreateUserResponse userId

Since: 1.6.14

Constructors

JSONResponse :: forall a. ToJSON a => a -> JSONResponse a |

#### Instances

Instances details

HasContentType (JSONResponse a) # |
Instance details Defined in Yesod.Core.Content Methods getContentType :: Monad m => m (JSONResponse a) -> ContentType #
ToContent (JSONResponse a) # |
Instance details Defined in Yesod.Core.Content Methods toContent :: JSONResponse a -> Content #
ToTypedContent (JSONResponse a) # |
Instance details Defined in Yesod.Core.Content Methods toTypedContent :: JSONResponse a -> TypedContent #

newtype DontFullyEvaluate a #

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

Since 1.1.0

Constructors

DontFullyEvaluate |

Fields

- unDontFullyEvaluate :: a

#### Instances

Instances details

HasContentType a => HasContentType (DontFullyEvaluate a) # |
Instance details Defined in Yesod.Core.Content Methods getContentType :: Monad m => m (DontFullyEvaluate a) -> ContentType #
ToContent a => ToContent (DontFullyEvaluate a) # |
Instance details Defined in Yesod.Core.Content Methods toContent :: DontFullyEvaluate a -> Content #
ToTypedContent a => ToTypedContent (DontFullyEvaluate a) # |
Instance details Defined in Yesod.Core.Content Methods toTypedContent :: DontFullyEvaluate a -> TypedContent #

data ErrorResponse #

Responses to indicate some form of an error occurred.

Constructors

NotFound | The requested resource was not found. Examples of when this occurs include when an incorrect URL is used, or `yesod-persistent`'s `get404` doesn't find a value. HTTP status: 404.
InternalError !Text | Some sort of unexpected exception. If your application uses `throwIO` or `error` to throw an exception, this is the form it would take. HTTP status: 500.
InvalidArgs ![Text] | Indicates some sort of invalid or missing argument, like a missing query parameter or malformed JSON body. Examples Yesod functions that send this include `requireCheckJsonBody` and `Yesod.Auth.GoogleEmail2`. HTTP status: 400.
NotAuthenticated | Indicates the user is not logged in. This is thrown when `isAuthorized` returns `AuthenticationRequired`. HTTP code: 401.
PermissionDenied !Text | Indicates the user doesn't have permission to access the requested resource. This is thrown when `isAuthorized` returns `Unauthorized`. HTTP code: 403.
BadMethod !Method | Indicates the URL would have been valid if used with a different HTTP method (e.g. a GET was used, but only POST is handled.) HTTP code: 405.

#### Instances

Instances details

NFData ErrorResponse # |
Instance details Defined in Yesod.Core.Types Methods rnf :: ErrorResponse -> () #
Generic ErrorResponse # |

Instance details

Defined in Yesod.Core.Types

Associated Types

type Rep ErrorResponse |

Instance details

Defined in Yesod.Core.Types

type Rep ErrorResponse = D1 ('MetaData "ErrorResponse" "Yesod.Core.Types" "yesod-core-1.6.26.0-B2w9SHR7lnTJbmdWn9hIxe" 'False) ((C1 ('MetaCons "NotFound" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "InternalError" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text)) :+: C1 ('MetaCons "InvalidArgs" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Text])))) :+: (C1 ('MetaCons "NotAuthenticated" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "PermissionDenied" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text)) :+: C1 ('MetaCons "BadMethod" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Method)))))

Methods

from :: ErrorResponse -> Rep ErrorResponse x #

to :: Rep ErrorResponse x -> ErrorResponse #

Show ErrorResponse # |
Instance details Defined in Yesod.Core.Types Methods showsPrec :: Int -> ErrorResponse -> ShowS # show :: ErrorResponse -> String # showList :: [ErrorResponse] -> ShowS #
Eq ErrorResponse # |
Instance details Defined in Yesod.Core.Types Methods (==) :: ErrorResponse -> ErrorResponse -> Bool # (/=) :: ErrorResponse -> ErrorResponse -> Bool #
type Rep ErrorResponse # |

Instance details

Defined in Yesod.Core.Types

type Rep ErrorResponse = D1 ('MetaData "ErrorResponse" "Yesod.Core.Types" "yesod-core-1.6.26.0-B2w9SHR7lnTJbmdWn9hIxe" 'False) ((C1 ('MetaCons "NotFound" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "InternalError" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text)) :+: C1 ('MetaCons "InvalidArgs" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Text])))) :+: (C1 ('MetaCons "NotAuthenticated" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "PermissionDenied" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text)) :+: C1 ('MetaCons "BadMethod" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Method)))))

data Header #

Headers to be added to a `Result`.

Constructors

AddCookie !SetCookie |
DeleteCookie !ByteString !ByteString | name and path
Header !(CI ByteString) !ByteString | key and value

#### Instances

Instances details

NFData Header # |
Instance details Defined in Yesod.Core.Types Methods rnf :: Header -> () #
Show Header # |
Instance details Defined in Yesod.Core.Types Methods showsPrec :: Int -> Header -> ShowS # show :: Header -> String # showList :: [Header] -> ShowS #
Eq Header # |
Instance details Defined in Yesod.Core.Types Methods (==) :: Header -> Header -> Bool # (/=) :: Header -> Header -> Bool #

data Location url #

Constructors

Local !url |
Remote !Text |

#### Instances

Instances details

Show url => Show (Location url) # |
Instance details Defined in Yesod.Core.Types Methods showsPrec :: Int -> Location url -> ShowS # show :: Location url -> String # showList :: [Location url] -> ShowS #
Eq url => Eq (Location url) # |
Instance details Defined in Yesod.Core.Types Methods (==) :: Location url -> Location url -> Bool # (/=) :: Location url -> Location url -> Bool #

newtype UniqueList x #

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]) |

#### Instances

Instances details

Monoid (UniqueList x) # |
Instance details Defined in Yesod.Core.Types Methods mempty :: UniqueList x # mappend :: UniqueList x -> UniqueList x -> UniqueList x # mconcat :: [UniqueList x] -> UniqueList x #
Semigroup (UniqueList x) # |
Instance details Defined in Yesod.Core.Types Methods (<>) :: UniqueList x -> UniqueList x -> UniqueList x # sconcat :: NonEmpty (UniqueList x) -> UniqueList x # stimes :: Integral b => b -> UniqueList x -> UniqueList x #

data Script url #

Constructors

Script |

Fields

- scriptLocation :: !(Location url)
- scriptAttributes :: ![(Text, Text)]

#### Instances

Instances details

Show url => Show (Script url) # |
Instance details Defined in Yesod.Core.Types Methods showsPrec :: Int -> Script url -> ShowS # show :: Script url -> String # showList :: [Script url] -> ShowS #
Eq url => Eq (Script url) # |
Instance details Defined in Yesod.Core.Types Methods (==) :: Script url -> Script url -> Bool # (/=) :: Script url -> Script url -> Bool #

data Stylesheet url #

Constructors

Stylesheet |

Fields

- styleLocation :: !(Location url)
- styleAttributes :: ![(Text, Text)]

#### Instances

Instances details

Show url => Show (Stylesheet url) # |
Instance details Defined in Yesod.Core.Types Methods showsPrec :: Int -> Stylesheet url -> ShowS # show :: Stylesheet url -> String # showList :: [Stylesheet url] -> ShowS #
Eq url => Eq (Stylesheet url) # |
Instance details Defined in Yesod.Core.Types Methods (==) :: Stylesheet url -> Stylesheet url -> Bool # (/=) :: Stylesheet url -> Stylesheet url -> Bool #

newtype Title #

Constructors

Title |

Fields

- unTitle :: Html

newtype Description #

Constructors

Description |

Fields

- unDescription :: Text

newtype Head url #

Constructors

Head (HtmlUrl url) |

#### Instances

Instances details

Monoid (Head url) # |
Instance details Defined in Yesod.Core.Types Methods mempty :: Head url # mappend :: Head url -> Head url -> Head url # mconcat :: [Head url] -> Head url #
Semigroup (Head url) # |
Instance details Defined in Yesod.Core.Types Methods (<>) :: Head url -> Head url -> Head url # sconcat :: NonEmpty (Head url) -> Head url # stimes :: Integral b => b -> Head url -> Head url #

newtype Body url #

Constructors

Body (HtmlUrl url) |

#### Instances

Instances details

Monoid (Body url) # |
Instance details Defined in Yesod.Core.Types Methods mempty :: Body url # mappend :: Body url -> Body url -> Body url # mconcat :: [Body url] -> Body url #
Semigroup (Body url) # |
Instance details Defined in Yesod.Core.Types Methods (<>) :: Body url -> Body url -> Body url # sconcat :: NonEmpty (Body url) -> Body url # stimes :: Integral b => b -> Body url -> Body url #

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

data GWData a #

Constructors

GWData |

Fields

- gwdBody :: !(Body a)
- gwdTitle :: !(Last Title)
- gwdDescription :: !(Last Description)
- gwdScripts :: !(UniqueList (Script a))
- gwdStylesheets :: !(UniqueList (Stylesheet a))
- gwdCss :: !(Map (Maybe Text) (CssBuilderUrl a))
- gwdJavascript :: !(Maybe (JavascriptUrl a))
- gwdHead :: !(Head a)

#### Instances

Instances details

Monoid (GWData a) # |
Instance details Defined in Yesod.Core.Types Methods mempty :: GWData a # mappend :: GWData a -> GWData a -> GWData a # mconcat :: [GWData a] -> GWData a #
Semigroup (GWData a) # |
Instance details Defined in Yesod.Core.Types Methods (<>) :: GWData a -> GWData a -> GWData a # sconcat :: NonEmpty (GWData a) -> GWData a # stimes :: Integral b => b -> GWData a -> GWData a #

data HandlerContents #

Constructors

HCContent !Status !TypedContent |
HCError !ErrorResponse |
HCSendFile !ContentType !FilePath !(Maybe FilePart) |
HCRedirect !Status !Text |
HCCreated !Text |
HCWai !Response |
HCWaiApp !Application |

#### Instances

Instances details

Exception HandlerContents # |
Instance details Defined in Yesod.Core.Types Methods toException :: HandlerContents -> SomeException # fromException :: SomeException -> Maybe HandlerContents # displayException :: HandlerContents -> String # backtraceDesired :: HandlerContents -> Bool #
Show HandlerContents # |
Instance details Defined in Yesod.Core.Types Methods showsPrec :: Int -> HandlerContents -> ShowS # show :: HandlerContents -> String # showList :: [HandlerContents] -> ShowS #

data Logger #

Constructors

Logger |

Fields

- loggerSet :: !LoggerSet
- loggerDate :: !DateCacheGetter

loggerPutStr :: Logger -> LogStr -> IO () #

newtype SubHandlerFor sub master a #

A handler monad for subsite

Since: 1.6.0

Constructors

SubHandlerFor |

Fields

- unSubHandlerFor :: HandlerData sub master -> IO a

#### Instances

Instances details

MonadIO (SubHandlerFor child master) # |
Instance details Defined in Yesod.Core.Types Methods liftIO :: IO a -> SubHandlerFor child master a #
MonadThrow (SubHandlerFor child master) # |
Instance details Defined in Yesod.Core.Types Methods throwM :: (HasCallStack, Exception e) => e -> SubHandlerFor child master a #
Applicative (SubHandlerFor child master) # |

Instance details

Defined in Yesod.Core.Types

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 #

Functor (SubHandlerFor sub master) # |
Instance details Defined in Yesod.Core.Types Methods fmap :: (a -> b) -> SubHandlerFor sub master a -> SubHandlerFor sub master b # (<$) :: a -> SubHandlerFor sub master b -> SubHandlerFor sub master a #
Monad (SubHandlerFor child master) # |
Instance details Defined in Yesod.Core.Types 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 #
MonadLogger (SubHandlerFor child master) # |
Instance details Defined in Yesod.Core.Types Methods monadLoggerLog :: ToLogStr msg => Loc -> LogSource -> LogLevel -> msg -> SubHandlerFor child master () #
MonadLoggerIO (SubHandlerFor child master) # |
Instance details Defined in Yesod.Core.Types Methods askLoggerIO :: SubHandlerFor child master (Loc -> LogSource -> LogLevel -> LogStr -> IO ()) #
MonadResource (SubHandlerFor child master) # |
Instance details Defined in Yesod.Core.Types Methods liftResourceT :: ResourceT IO a -> SubHandlerFor child master a #
MonadUnliftIO (SubHandlerFor child master) # | Since: 1.4.38
Instance details Defined in Yesod.Core.Types Methods withRunInIO :: ((forall a. SubHandlerFor child master a -> IO a) -> IO b) -> SubHandlerFor child master b #
MonadHandler (SubHandlerFor sub master) # |

Instance details

Defined in Yesod.Core.Class.Handler

Associated Types

type HandlerSite (SubHandlerFor sub master) |
Instance details Defined in Yesod.Core.Class.Handler type HandlerSite (SubHandlerFor sub master) = master
type SubHandlerSite (SubHandlerFor sub master) |
Instance details Defined in Yesod.Core.Class.Handler type SubHandlerSite (SubHandlerFor sub master) = sub

Methods

liftHandler :: HandlerFor (HandlerSite (SubHandlerFor sub master)) a -> SubHandlerFor sub master a #

liftSubHandler :: SubHandlerFor (SubHandlerSite (SubHandlerFor sub master)) (HandlerSite (SubHandlerFor sub master)) a -> SubHandlerFor sub master a #

MonadReader (HandlerData child master) (SubHandlerFor child master) # |
Instance details Defined in Yesod.Core.Types 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) # |
Instance details Defined in Yesod.Core.Class.Handler type HandlerSite (SubHandlerFor sub master) = master
type SubHandlerSite (SubHandlerFor sub master) # |
Instance details Defined in Yesod.Core.Class.Handler type SubHandlerSite (SubHandlerFor sub master) = sub