module Web.Hyperbole.Types.Client where import Data.Text (Text) import Web.Hyperbole.Data.Cookie (Cookies) import Web.Hyperbole.Data.QueryData as QueryData import Web.Hyperbole.Types.Request data Client = Client { Client -> RequestId requestId :: RequestId , Client -> Cookies session :: Cookies , Client -> Maybe QueryData query :: Maybe QueryData , Client -> Maybe Text pageTitle :: Maybe Text } clientSetPageTitle :: Text -> Client -> Client clientSetPageTitle :: Text -> Client -> Client clientSetPageTitle Text t Client{Cookies $sel:session:Client :: Client -> Cookies session :: Cookies session, Maybe QueryData $sel:query:Client :: Client -> Maybe QueryData query :: Maybe QueryData query, RequestId $sel:requestId:Client :: Client -> RequestId requestId :: RequestId requestId} = Client{$sel:pageTitle:Client :: Maybe Text pageTitle = Text -> Maybe Text forall a. a -> Maybe a Just Text t, $sel:session:Client :: Cookies session = Cookies session, Maybe QueryData $sel:query:Client :: Maybe QueryData query :: Maybe QueryData query, RequestId $sel:requestId:Client :: RequestId requestId :: RequestId requestId} clientModCookies :: (Cookies -> Cookies) -> Client -> Client clientModCookies :: (Cookies -> Cookies) -> Client -> Client clientModCookies Cookies -> Cookies f Client{Cookies $sel:session:Client :: Client -> Cookies session :: Cookies session, Maybe QueryData $sel:query:Client :: Client -> Maybe QueryData query :: Maybe QueryData query, RequestId $sel:requestId:Client :: Client -> RequestId requestId :: RequestId requestId, Maybe Text $sel:pageTitle:Client :: Client -> Maybe Text pageTitle :: Maybe Text pageTitle} = Client{$sel:session:Client :: Cookies session = Cookies -> Cookies f Cookies session, Maybe QueryData $sel:query:Client :: Maybe QueryData query :: Maybe QueryData query, RequestId $sel:requestId:Client :: RequestId requestId :: RequestId requestId, Maybe Text $sel:pageTitle:Client :: Maybe Text pageTitle :: Maybe Text pageTitle} clientSetQuery :: QueryData -> Client -> Client clientSetQuery :: QueryData -> Client -> Client clientSetQuery QueryData q Client{Cookies $sel:session:Client :: Client -> Cookies session :: Cookies session, RequestId $sel:requestId:Client :: Client -> RequestId requestId :: RequestId requestId, Maybe Text $sel:pageTitle:Client :: Client -> Maybe Text pageTitle :: Maybe Text pageTitle} = Client{$sel:query:Client :: Maybe QueryData query = QueryData -> Maybe QueryData forall a. a -> Maybe a Just QueryData q, Cookies $sel:session:Client :: Cookies session :: Cookies session, RequestId $sel:requestId:Client :: RequestId requestId :: RequestId requestId, Maybe Text $sel:pageTitle:Client :: Maybe Text pageTitle :: Maybe Text pageTitle}