server/src/Session.hs

32 lines
563 B
Haskell

{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE MultiParamTypeClasses #-}
module Session (
Status(..)
, T(..)
, Update
, open
) where
import Network.WebSockets (Connection)
import qualified RW (RW(..))
newtype Status = Status {
loggedIn :: Bool
} deriving (Show)
data T = T {
connection :: Connection
, status :: Status
}
type Update = T -> T
instance RW.RW Status T where
get = status
set status session = session {status}
open :: Connection -> T
open connection = T {
connection
, status = Status False
}