]> gitweb.michael.orlitzky.com - dead/htsn-import.git/blobdiff - src/TSN/Picklers.hs
Update (or add) a bunch of documentation.
[dead/htsn-import.git] / src / TSN / Picklers.hs
index 8419f704172470565c5fe3d22f000827f0fa40da..d87139b793bbb6dddc2e429a0c14b56fb96f3ccc 100644 (file)
@@ -3,7 +3,8 @@
 --
 module TSN.Picklers (
   xp_date,
-  xp_team_id )
+  xp_team_id,
+  xp_time )
 where
 
 -- System imports.
@@ -31,6 +32,22 @@ xp_date =
     from_date = formatTime defaultTimeLocale format
 
 
+-- | (Un)pickle a UTCTime without the date portion.
+--
+xp_time :: PU UTCTime
+xp_time =
+  (to_time, from_time) `xpWrapMaybe` xpText
+  where
+    format = "%I:%M %p"
+
+    to_time :: String -> Maybe UTCTime
+    to_time = parseTime defaultTimeLocale format
+
+    from_time :: UTCTime -> String
+    from_time = formatTime defaultTimeLocale format
+
+
+
 -- | Parse a team_id. These are (so far!) three characters long, and
 --   not necessarily numeric. For simplicity, we return a 'String'
 --   rather than e.g. a @(Char, Char, Char)@. But unpickling will fail