fibon-0.1.0: lib/Fibon/Timeout.hs
module Fibon.Timeout(
Timeout(..)
, timeoutToMicroSeconds
)
where
data Timeout =
Infinity
| Limit {hours :: Int, mins :: Int, secs :: Int}
timeoutToMicroSeconds :: Timeout -> Maybe Int
timeoutToMicroSeconds Infinity = Nothing
timeoutToMicroSeconds (Limit h m s) = Just $
(hoursToMicroSeconds h) + (minsToMicroSeconds m) + (secsToMicroSeconds s)
where
hoursToMicroSeconds = (* (36 * 10 ^ (8::Int)))
minsToMicroSeconds = (* (6 * 10 ^ (7::Int)))
secsToMicroSeconds = (* (1 * 10 ^ (6::Int)))