game/src/Pokemon.hs

28 lines
705 B
Haskell

{-# LANGUAGE DeriveGeneric #-}
module Pokemon (
T(..)
) where
import Data.Aeson (ToJSON(..), FromJSON(..), genericToEncoding, genericParseJSON, defaultOptions)
import GHC.Generics (Generic)
import Gender (Gender)
import qualified Pokemon.Species as Species (Key)
import Pokemon.Status (Status)
import qualified Pokemon.Move as Move (Key)
import Tool.Array (Array)
data T = T {
nick :: Maybe String
, species :: Species.Key
, gender :: Gender
, level :: Int
, status :: Status
, moves :: Array Move.Key
} deriving (Generic)
instance ToJSON T where
toEncoding = genericToEncoding defaultOptions
instance FromJSON T where
parseJSON = genericParseJSON defaultOptions