task-distribution-0.1.0.0: src/Control/Distributed/Task/Util/SerializationUtil.hs
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