Module

Test.Serialization.Symbiote.Core

Package
purescript-symbiote
Repository
athanclark/purescript-symbiote

#SymbioteOperation Source

class SymbioteOperation a o op | a -> op, op -> a, a -> o where

A type-level relation between a type and appropriate, testable operations on that type.

Members

#Operation Source

type Operation a s = s

A synonym for s, because we can't quantify the type family and have to store it serialized, but trying to denote that it still "belongs" to a.

#Symbiote Source

class (SymbioteOperation a o op) <= Symbiote a o op s | a -> op, op -> a, a -> o where

A serialization format for a particular type, and serialized data type.

Members

#SymbioteProtocol Source

data SymbioteProtocol a s

Protocol state for a particular topic

Constructors

#SymbioteGeneration Source

newtype SymbioteGeneration a s

Protocol generation state

Constructors

#newGeneration Source

#SymbioteState Source

newtype SymbioteState a o s

Internal existential state of a registered topic with type's facilities

Constructors

#ExistsSymbiote Source

#mkExistsSymbiote Source

mkExistsSymbiote :: forall s o a. SymbioteState a o s -> ExistsSymbiote s

#runExistsSymbiote Source

runExistsSymbiote :: forall r s. (forall o a. SymbioteState a o s -> r) -> ExistsSymbiote s -> r

#runSymbioteT Source

runSymbioteT :: forall m s. Monad m => SymbioteT s m Unit -> Boolean -> m (Map Topic (ExistsSymbiote s))

#GenerateSymbiote Source

data GenerateSymbiote s

Constructors

#generateSymbiote Source

#getProgress Source

getProgress :: forall m s. MonadEffect m => ExistsSymbiote s -> m Number