yesod-session-persist-0.0.0.0: internal/Session/Timing/Options.hs
module Session.Timing.Options
( TimingOptions (..)
, defaultTimingOptions
) where
import Internal.Prelude
import Session.Timing.Timeout
import Time
-- | Time duration settings
--
-- See 'defaultTimingOptions'.
data TimingOptions a = TimingOptions
{ timeout :: Timeout a
-- ^ How long sessions are allowed to live
, resolution :: Maybe a
-- ^ If @'Just' resolution@, this setting provides an optimization that can prevent
-- excessive database writes. If the only thing that needs to be updated is the
-- session's last access time, the write will be skipped if the previously recorded
-- access time is within @resolution@ long ago.
}
deriving stock (Eq, Show)
-- | Default timing options
--
-- - timeout = 'defaultTimeout'
-- - resolution = 10 minutes
defaultTimingOptions :: TimingOptions NominalDiffTime
defaultTimingOptions =
TimingOptions
{ timeout = defaultTimeout
, resolution = Just $ minutes 10
}