wizard-wipeout/src-client/Client/Types.hs

37 lines
631 B
Haskell
Raw Normal View History

module Client.Types where
2023-12-10 14:18:40 +00:00
import Control.Monad.RWS
import Data.UUID
2023-12-10 19:12:53 +00:00
import Network.Socket
2023-12-10 19:12:53 +00:00
import Options.Applicative as O
2023-12-10 14:18:40 +00:00
-- internal imports
import Library.Types
newtype Options = Options
{ optSockLoc :: FilePath
}
options :: O.Parser Options
options = Options
<$> argument str
( metavar "FILEPATH"
<> help "Location of the server's socket"
)
2023-12-10 14:18:40 +00:00
data ReaderContainer = ReaderContainer
2023-12-12 08:47:50 +00:00
{ rcSocket :: Socket
, rcClientUUID :: UUID
2023-12-10 14:18:40 +00:00
}
newtype StateContainer = StateContainer
2023-12-12 08:47:50 +00:00
{ scWizard :: Wizard
, scClientState :: ClientState
2023-12-10 14:18:40 +00:00
}
type Game = RWST ReaderContainer String StateContainer IO