-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Date cacher
--
-- Formatting time is slow. This package provides mechanisms to cache
-- formatted date
@package date-cache
@version 0.3.0
-- | Formatting time is slow. This package provides mechanisms to cache
-- formatted date.
module System.Date.Cache
data DateCacheConf t
DateCacheConf :: IO t -> (t -> IO ByteString) -> DateCacheConf t
-- | A function to get a time. E.g epochTime and
-- getCurrentTime.
getTime :: DateCacheConf t -> IO t
-- | A function to format a time.
formatDate :: DateCacheConf t -> t -> IO ByteString
type DateCacheGetter = IO ByteString
type DateCacheCloser = IO ()
-- | Date cacher which gets a time and formatted it only when returned
-- getter is executed.
ondemandDateCacher :: Eq t => DateCacheConf t -> IO (DateCacheGetter, DateCacheCloser)
-- | Date cacher which gets a time and formatted it every second. This
-- returns a getter.
clockDateCacher :: Eq t => DateCacheConf t -> IO (DateCacheGetter, DateCacheCloser)
instance Eq t => Eq (DateCache t)
instance Show t => Show (DateCache t)