You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
17 lines
372 B
17 lines
372 B
|
4 years ago
|
{-# LANGUAGE RankNTypes #-}
|
||
|
|
|
||
|
|
module ATrade.RoboCom.Persistence
|
||
|
|
(
|
||
|
|
MonadPersistence(..)
|
||
|
|
) where
|
||
|
|
|
||
|
|
import Data.Aeson
|
||
|
|
import Data.Default (Default)
|
||
|
|
import qualified Data.Text as T
|
||
|
|
|
||
|
|
class (Monad m) => MonadPersistence m where
|
||
|
|
saveState :: forall s. (ToJSON s) => s -> T.Text -> m ()
|
||
|
|
loadState :: forall s. (Default s, FromJSON s) => T.Text -> m s
|
||
|
|
|
||
|
|
|