Add generic derivations and To/FromJSON instances

This commit is contained in:
2022-07-25 22:49:18 +01:00
parent f5604ef429
commit b8e8413daa
99 changed files with 1406 additions and 517 deletions
+11 -4
View File
@@ -1,16 +1,23 @@
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TemplateHaskell #-}
module Dodge.Data.Hammer where
import GHC.Generics
import Data.Aeson
import Control.Lens
data HammerType
= NoHammer
| HasHammer {_hammerPosition :: HammerPosition}
deriving
(Eq, Ord, Show,Read)
deriving (Eq, Ord, Show,Read,Generic)
instance ToJSON HammerType where
toEncoding = genericToEncoding defaultOptions
instance FromJSON HammerType
data HammerPosition
= HammerDown
| HammerReleased
| HammerUp
deriving
(Eq, Ord, Show,Read)
deriving (Eq, Ord, Show,Read,Generic)
instance ToJSON HammerPosition where
toEncoding = genericToEncoding defaultOptions
instance FromJSON HammerPosition
makeLenses ''HammerType