-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | 64-bit timeouts of nanosecond precision -- -- This package provides data types and functions for working with 64-bit -- timeouts of nanosecond precision. @package data-timeout @version 0.3.1 module Data.Timeout -- | 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. data TimedOut TimedOut :: TimedOut -- | Timeout unit. data TimeoutUnit NanoSecond :: TimeoutUnit MicroSecond :: TimeoutUnit MilliSecond :: TimeoutUnit Second :: TimeoutUnit Minute :: TimeoutUnit Hour :: TimeoutUnit Day :: TimeoutUnit Week :: TimeoutUnit -- | TimeoutUnit proxy value. aTimeoutUnit :: Proxy TimeoutUnit -- | Amount of nanoseconds in a timeout unit. timeoutUnitNanos :: TimeoutUnit -> Word64 -- | 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: -- --
-- fmap toString (fromStringAs aTimeout "1m1.5s0.2us") = Just "1m1s500ms200ns" -- --newtype Timeout Timeout :: Word64 -> Timeout -- | Timeout proxy value. aTimeout :: Proxy Timeout -- | Convert the given number of timeout units to Timeout. (#) :: Word64 -> TimeoutUnit -> Timeout infix 9 # -- | Extract number of units (rounding up). (#>) :: Timeout -> TimeoutUnit -> Word64 infix 8 #> -- | Extract number of units (rounding down). (#<) :: Timeout -> TimeoutUnit -> Word64 infix 8 #< -- | Zero timeout. The event in question should occur immediately. instantly :: Timeout instance GHC.Real.Integral Data.Timeout.Timeout instance GHC.Real.Real Data.Timeout.Timeout instance GHC.Num.Num Data.Timeout.Timeout instance GHC.Enum.Enum Data.Timeout.Timeout instance GHC.Arr.Ix Data.Timeout.Timeout instance GHC.Enum.Bounded Data.Timeout.Timeout instance GHC.Classes.Ord Data.Timeout.Timeout instance GHC.Classes.Eq Data.Timeout.Timeout instance GHC.Read.Read Data.Timeout.Timeout instance GHC.Show.Show Data.Timeout.Timeout instance GHC.Enum.Enum Data.Timeout.TimeoutUnit instance GHC.Arr.Ix Data.Timeout.TimeoutUnit instance GHC.Enum.Bounded Data.Timeout.TimeoutUnit instance GHC.Classes.Ord Data.Timeout.TimeoutUnit instance GHC.Classes.Eq Data.Timeout.TimeoutUnit instance GHC.Read.Read Data.Timeout.TimeoutUnit instance GHC.Show.Show Data.Timeout.TimeoutUnit instance GHC.Show.Show Data.Timeout.TimedOut instance GHC.Classes.Eq Data.Timeout.TimedOut instance Data.Textual.Printable Data.Timeout.Timeout instance Data.Textual.Textual Data.Timeout.Timeout instance Data.Textual.Printable Data.Timeout.TimeoutUnit instance Data.Textual.Textual Data.Timeout.TimeoutUnit instance GHC.Exception.Exception Data.Timeout.TimedOut module Control.Concurrent.Timeout -- | A version of timeout that takes Timeout instead of -- number of microseconds. timeout :: MonadBase IO μ => Timeout -> IO α -> μ (Maybe α) -- | A version of threadDelay that takes Timeout instead of -- number of microseconds. threadDelay :: MonadBase IO μ => Timeout -> μ () instance GHC.Classes.Eq Control.Concurrent.Timeout.TimeoutException instance GHC.Show.Show Control.Concurrent.Timeout.TimeoutException instance GHC.Exception.Exception Control.Concurrent.Timeout.TimeoutException module Control.Concurrent.STM.Timeout registerDelay :: MonadBase IO μ => Timeout -> μ (TVar Bool)