packages feed

eve-0.1.0: test/Fixtures.hs

{-# language TemplateHaskell #-}
module Fixtures
  ( ExtState(..)
  , store
  , CustomEvent(..)
  , emptyExts
  ) where

import Eve.Internal.Extensions
import Eve.Internal.Listeners

import Control.Lens
import Data.Default

data ExtState = ExtState
  { _testExts :: Exts
  }

makeLenses ''ExtState

instance HasExts ExtState where
  exts = testExts

instance HasEvents ExtState

emptyExts = ExtState mempty

data Store = Store 
  {_payload :: String
  } deriving (Show, Eq)
makeLenses ''Store

store :: HasExts s => Lens' s String
store = ext.payload

instance Default Store where
  def = Store "default"

data CustomEvent = CustomEvent