haxl-2.0.1.1: A Haskell library for efficient, concurrent, and concise data access.

Safe HaskellNone
LanguageHaskell2010

Haxl.Core.StateStore

Description

Most users should import Haxl.Core instead of importing this module directly.

Synopsis

Documentation

class Typeable f => StateKey (f :: * -> *) where Source #

StateKey maps one type to another type. A type that is an instance of StateKey can store and retrieve information from a StateStore.

Associated Types

data State f Source #

Methods

getStateType :: Proxy f -> TypeRep Source #

We default this to typeOf1, but if f is itself a complex type that is already applied to some paramaters, we want to be able to use the same state by using typeOf2, etc

Instances
Typeable tag => StateKey (ConcurrentIOReq tag) Source # 
Instance details

Defined in Haxl.DataSource.ConcurrentIO

Associated Types

data State (ConcurrentIOReq tag) :: * Source #

stateGet :: forall r. StateKey r => StateStore -> Maybe (State r) Source #

Retrieves a State from the StateStore container.

stateSet :: forall f. StateKey f => State f -> StateStore -> StateStore Source #

Inserts a State in the StateStore container.

stateEmpty :: StateStore Source #

A StateStore with no entries.