- data Acid st
- class HasAcid myState acidState where
- getAcidStore :: myState -> Acid acidState
- acidInit :: (IsAcidic st, Typeable st) => st -> SnapletInit b (Acid st)
- acidInit' :: IsAcidic st => FilePath -> st -> SnapletInit b (Acid st)
- update :: (MonadState s m, HasAcid s (MethodState event), UpdateEvent event, MonadIO m) => event -> m (EventResult event)
- query :: (HasAcid s (MethodState event), MonadIO m, QueryEvent event, MonadState s m) => event -> m (EventResult event)
- createCheckpoint :: (MonadIO m, MonadState s m, HasAcid s st) => m ()
- closeAcidState :: (MonadIO m, MonadState s m, HasAcid s st) => m ()
- module Data.Acid
Documentation
class HasAcid myState acidState whereSource
Type class standardizing a context that holds an AcidState.
You can minimize boilerplate in your application by adding an instance like the following:
data App = App { ... _acid :: Snaplet (Acid MyState) ... } instance HasAcid App MyState where getAcidStore = getL (snapletValue . acid)
getAcidStore :: myState -> Acid acidStateSource
:: (IsAcidic st, Typeable st) | |
=> st | Initial state to be used if |
-> SnapletInit b (Acid st) |
:: IsAcidic st | |
=> FilePath | Location of the acid-state store on disk |
-> st | Initial state to be used if |
-> SnapletInit b (Acid st) |
Initializer allowing you to specify the location of the acid-state store.
update :: (MonadState s m, HasAcid s (MethodState event), UpdateEvent event, MonadIO m) => event -> m (EventResult event)Source
Wrapper for acid-state's update function that works for arbitrary instances of HasAcid.
query :: (HasAcid s (MethodState event), MonadIO m, QueryEvent event, MonadState s m) => event -> m (EventResult event)Source
Wrapper for acid-state's query function that works for arbitrary instances of HasAcid.
createCheckpoint :: (MonadIO m, MonadState s m, HasAcid s st) => m ()Source
closeAcidState :: (MonadIO m, MonadState s m, HasAcid s st) => m ()Source
module Data.Acid