import Data.String.Utils ( split )
import Data.Time ( UTCTime(..) )
import Data.Tuple.Curry ( uncurryN )
+import qualified Data.Vector.HFixed as H ( HVector, convert )
import Database.Groundhog (
countAll,
deleteAll,
-- Local imports
-import Generics ( Generic(..), to_tuple )
import TSN.Codegen ( tsn_codegen_config )
import TSN.Database ( insert_or_select )
import TSN.DbImport ( DbImport(..), ImportResult(..), run_dbmigrate )
deriving (Eq, GHC.Generic, Show)
--- | For 'Generics.to_tuple'.
+-- | For 'H.convert'.
--
-instance Generic Message
+instance H.HVector Message
instance ToDb Message where
deriving (Eq, GHC.Generic, Show)
--- | For 'Generics.to_tuple'.
+-- | For 'H.convert'.
--
-instance Generic JFileGameXml
+instance H.HVector JFileGameXml
-- * JFileGameListXml
pickle_message :: PU Message
pickle_message =
xpElem "message" $
- xpWrap (from_tuple, to_tuple) $
+ xpWrap (from_tuple, H.convert) $
xp6Tuple (xpElem "XML_File_ID" xpInt)
(xpElem "heading" xpText)
(xpElem "category" xpText)
pickle_game :: PU JFileGameXml
pickle_game =
xpElem "game" $
- xpWrap (from_tuple, to_tuple) $
+ xpWrap (from_tuple, H.convert) $
xp14Tuple (xpElem "game_id" xpInt)
(xpElem "schedule_id" xpInt)
pickle_odds_info
(xpOption xpText) -- Yup, some are nameless
where
from_tuple = HTeam . (uncurryN Team)
- to_tuple' (HTeam t) = to_tuple t
+ to_tuple' (HTeam t) = H.convert t
-- | (Un)pickle an away team to/from the dual XML/DB representation
(xpOption xpText) -- Yup, some are nameless
where
from_tuple = VTeam . (uncurryN Team)
- to_tuple' (VTeam t) = to_tuple t
+ to_tuple' (VTeam t) = H.convert t
pickle_status :: PU JFileGameStatus