| Copyright | (c) Ryota Kameoka 2018 | 
|---|---|
| License | BSD-3 | 
| Maintainer | kameoka.ryota@gmail.com | 
| Stability | experimental | 
| Safe Haskell | None | 
| Language | Haskell2010 | 
Data.Time.Clock.Duration
Contents
Description
A tiny compile-time time utility library, inspired by zeit/ms.
Synopsis
- t :: QuasiQuoter
 - s :: QuasiQuoter
 - ms :: QuasiQuoter
 - µs :: QuasiQuoter
 - ns :: QuasiQuoter
 - ps :: QuasiQuoter
 
Quasiquoters
t :: QuasiQuoter Source #
A quasiquoter to denote a duration.
>>>[t| 42s |] :: DiffTime42s
>>>[t| 1day |] :: DiffTime86400s
The expression has the type of .AbsoluteDuration a => a
>>>[t| 1ms |] :: NominalDiffTime0.001s
>>>[t| 1ms |] :: CSUSeconds1000
>>>[t| 1ms |] :: CUSeconds1000
You can use various expressions inside the quasiquoter. (See Time for details.)
>>>[t| 1ms |] :: DiffTime0.001s
>>>[t| 1s |] :: DiffTime1s
>>>[t| 1m |] :: DiffTime60s
>>>[t| 1h |] :: DiffTime3600s
>>>[t| 1d |] :: DiffTime86400s
>>>[t| 1w |] :: DiffTime604800s
>>>[t| 1y |] :: DiffTime31536000s
s :: QuasiQuoter Source #
A quasiquoter to denote a duration in seconds. Its behavior varies according to what you give to the quasiquoter.
When a unitless number (like 42) is supplied to s, the expression has the type of .AbsoluteDuration a => a
>>>[s| 42 |] :: DiffTime42s
When you pass a string with a number and a valid unit (like 42s), the expression has the type of , and it represents how long the given duration is in seconds.RelativeDuration a => a
For example, how long is 42 minutes in seconds?
>>>[s| 42m |] :: Int2520
Note that short durations can be rounded to zero when treated as an integer.
>>>[s| 1ms |] :: Int0>>>[s| 1ms |] :: Integer0
To avoid this, use Ratio or Float instead.
>>>[s| 1ms |] :: Rational1 % 1000>>>[s| 1ms |] :: Float1.0e-3
ms :: QuasiQuoter Source #
A quasiquoter to denote a duration in milliseconds. See s for detailed usage.
>>>[ms| 42 |] :: DiffTime0.042s
>>>[ms| 42s |] :: Integer42000
µs :: QuasiQuoter Source #
A quasiquoter to denote a duration in microseconds. See s for detailed usage.
>>>[µs| 42 |] :: DiffTime0.000042s
>>>[µs| 42s |] :: Integer42000000
ns :: QuasiQuoter Source #
A quasiquoter to denote a duration in nanoseconds. See s for detailed usage.
>>>[ns| 42 |] :: DiffTime0.000000042s
>>>[ns| 42s |] :: Integer42000000000
ps :: QuasiQuoter Source #
A quasiquoter to denote a duration in picoseconds. See s for detailed usage.
>>>[ps| 42 |] :: DiffTime0.000000000042s
>>>[ps| 42s |] :: Integer42000000000000