Module

Queue.Internal

Package
purescript-queue
Repository
athanclark/purescript-queue

#SCOPE Source

data SCOPE :: Type

#READ Source

data READ :: SCOPE

#WRITE Source

data WRITE :: SCOPE

#Handler Source

type Handler eff a = a -> Eff eff Unit

#Queue Source

newtype Queue (rw :: Row SCOPE) (eff :: Row Effect) a

Constructors

#newQueue Source

newQueue :: forall a eff. Eff (ref :: REF | eff) (Queue (read :: READ, write :: WRITE) (ref :: REF | eff) a)

#readOnly Source

readOnly :: forall a eff rw. Queue (read :: READ | rw) eff a -> Queue (read :: READ) eff a

#allowWriting Source

allowWriting :: forall a eff rw. Queue (read :: READ) eff a -> Queue (read :: READ | rw) eff a

#writeOnly Source

writeOnly :: forall a eff rw. Queue (write :: WRITE | rw) eff a -> Queue (write :: WRITE) eff a

#allowReading Source

allowReading :: forall a eff rw. Queue (write :: WRITE) eff a -> Queue (write :: WRITE | rw) eff a

#putQueue Source

putQueue :: forall a eff rw. Queue (write :: WRITE | rw) (ref :: REF | eff) a -> a -> Eff (ref :: REF | eff) Unit

#putManyQueue Source

putManyQueue :: forall a eff rw. Queue (write :: WRITE | rw) (ref :: REF | eff) a -> Array a -> Eff (ref :: REF | eff) Unit

#onQueue Source

onQueue :: forall a eff rw. Queue (read :: READ | rw) (ref :: REF | eff) a -> Handler (ref :: REF | eff) a -> Eff (ref :: REF | eff) Unit

#onceQueue Source

onceQueue :: forall a eff rw. Queue (read :: READ | rw) (ref :: REF | eff) a -> Handler (ref :: REF | eff) a -> Eff (ref :: REF | eff) Unit

Treat this as the only handler, and on the next input, clear all handlers.

#readQueue Source

readQueue :: forall a eff rw. Queue rw (ref :: REF | eff) a -> Eff (ref :: REF | eff) (Array a)

#takeQueue Source

takeQueue :: forall a eff rw. Queue (write :: WRITE | rw) (ref :: REF | eff) a -> Eff (ref :: REF | eff) (Array a)

#delQueue Source

delQueue :: forall a eff rw. Queue (read :: READ | rw) (ref :: REF | eff) a -> Eff (ref :: REF | eff) Unit

Removes the registered callbacks, if any.