polysemy-db-0.0.1.0: Polysemy effects for databases
Safe HaskellSafe-Inferred
LanguageHaskell2010

Polysemy.Db.Interpreter.AtomicState

Synopsis

Documentation

insertState :: forall d err r. Members [QStore Maybe () d !! err, Stop err] r => Sem r d -> Sem r d Source #

readState :: forall d err r. Members [QStore Maybe () d !! err, Stop err] r => Sem r d -> Sem r d Source #

handleAtomicStateStore :: forall tag d err r0 r a. Members [QStore Maybe () d !! err, Lock @@ tag, Stop err] r => Sem r d -> AtomicState d (Sem r0) a -> Sem r a Source #

interpretAtomicStateStore :: forall tag d err r. Members [QStore Maybe () d !! err, Lock @@ tag] r => Sem (Stop err ': r) d -> InterpreterFor (AtomicState d !! err) r Source #

Interpret AtomicState as a singleton table.

Given an action that produces an initial value, every action reads the value from the database and writes it back.

interpretAtomicStateStoreAs :: forall tag d err r. Members [QStore Maybe () d !! err, Lock @@ tag] r => d -> InterpreterFor (AtomicState d !! err) r Source #

Interpret AtomicState as a singleton table.

Given an initial value, every action reads the value from the database and writes it back.

atomicStateScope :: Member (Scoped param (QStore Maybe () d !! err) !! err) r => param -> (() -> Sem ((QStore Maybe () d !! err) ': (Stop err ': r)) a) -> Sem (Stop err ': r) a Source #

interpretAtomicStateStoreScoped :: forall tag param d err r. Members [Scoped param (QStore Maybe () d !! err) !! err, Lock @@ tag] r => Sem (Stop err ': r) d -> InterpreterFor (Scoped param (AtomicState d !! err) !! err) r Source #

interpretAtomicStateStoreScopedAs :: forall tag param d err r. Members [Scoped param (QStore Maybe () d !! err) !! err, Lock @@ tag] r => d -> InterpreterFor (Scoped param (AtomicState d !! err) !! err) r Source #

interpretAtomicStatesStore :: forall tag param d err r. Members [QStore Maybe () d !! err, Scoped param (QStore Maybe () d !! err) !! err, Lock @@ tag] r => Sem (Stop err ': r) d -> InterpretersFor [AtomicState d !! err, Scoped param (AtomicState d !! err) !! err] r Source #