module Control.Distributed.Task.Util.SerializationUtil where

import Data.Time.Calendar (Day(..))
import Data.Time.Clock (UTCTime(..), NominalDiffTime)

type TimeStamp = (Integer, Rational)

serializeTime :: UTCTime -> TimeStamp
serializeTime (UTCTime (ModifiedJulianDay d) f) = (d, toRational f)

deserializeTime :: TimeStamp -> UTCTime
deserializeTime (d, f) = UTCTime (ModifiedJulianDay d) (fromRational f)

serializeTimeDiff :: NominalDiffTime -> Rational
serializeTimeDiff = toRational

deserializeTimeDiff :: Rational -> NominalDiffTime
deserializeTimeDiff = fromRational