gore-and-ash-logging-1.1.0.0: src/Game/GoreAndAsh/Logging/State.hs
{-|
Module : Game.GoreAndAsh.Logging.State
Description : State of logging core module
Copyright : (c) Anton Gushcha, 2015-2016
License : BSD3
Maintainer : ncrashed@gmail.com
Stability : experimental
Portability : POSIX
Contains description of state for logging core module.
-}
module Game.GoreAndAsh.Logging.State(
LoggingState(..)
) where
import qualified Data.Sequence as S
import Data.Text
import GHC.Generics (Generic)
import Control.DeepSeq
-- | Inner state of logger.
--
-- [@s@] next state, states of modules are chained via nesting
data LoggingState s = LoggingState {
loggingMsgs :: !(S.Seq Text)
, loggingNextState :: !s
} deriving (Generic)
instance NFData s => NFData (LoggingState s)