wizard-wipeout/src-client/Client/Types.hs
2023-12-10 15:18:40 +01:00

35 lines
592 B
Haskell

module Client.Types where
import Control.Monad.RWS
import Data.UUID
import Options.Applicative as O
import System.IO
-- 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"
)
data ReaderContainer = ReaderContainer
{ rcSocketHandle :: Handle
, rcClientUUID :: UUID
}
newtype StateContainer = StateContainer
{ scWizard :: Wizard
}
type Game = RWST ReaderContainer String StateContainer IO