| Safe Haskell | None |
|---|
Data.Timeout
- data TimedOut = TimedOut
- data TimeoutUnit
- = NanoSecond
- | MicroSecond
- | MilliSecond
- | Second
- | Minute
- | Hour
- | Day
- | Week
- aTimeoutUnit :: Proxy TimeoutUnit
- timeoutUnitNanos :: TimeoutUnit -> Word64
- newtype Timeout = Timeout Word64
- aTimeout :: Proxy Timeout
- (#) :: Word64 -> TimeoutUnit -> Timeout
- (#>) :: Timeout -> TimeoutUnit -> Word64
- (#<) :: Timeout -> TimeoutUnit -> Word64
- instantly :: Timeout
Documentation
Exception that is raised when an operation times out. Not used by the package itself, it is here so that users don't need to roll their own exception type every time.
Constructors
| TimedOut |
data TimeoutUnit Source
Timeout unit.
Constructors
| NanoSecond | |
| MicroSecond | |
| MilliSecond | |
| Second | |
| Minute | |
| Hour | |
| Day | |
| Week |
aTimeoutUnit :: Proxy TimeoutUnitSource
TimeoutUnit proxy value.
timeoutUnitNanos :: TimeoutUnit -> Word64Source
Amount of nanoseconds in a timeout unit.
Timeout in nanoseconds. The Printable instance renders timeouts as
series of AmountUnit tokens, e.g.
toString (1 # Day + 1500 # MilliSecond) = "1d1s500ms"
The full list of timeout unit abbreviations:
-
NanoSecond- ns -
MicroSecond- us -
MilliSecond- ms -
Second- s -
Minute- m -
Hour- h -
Day- d -
Week- w
The Textual instance accepts this syntax and allows decimal
fractions to be used as amounts:
fmap toString (fromStringAs aTimeout "1m1.5s0.2us") = Just "1m1s500ms200ns"
(#>) :: Timeout -> TimeoutUnit -> Word64Source
Extract number of units (rounding up).
(#<) :: Timeout -> TimeoutUnit -> Word64Source
Extract number of units (rounding down).