Queue.Types
- Package
- purescript-queue
- Repository
- athanclark/purescript-queue
#QueueExtra Source
class QueueExtra (queue :: Row SCOPE -> Type -> Type) where
Members
debounceStatic :: forall a. Milliseconds -> queue (read :: READ) a -> Aff { input :: queue (write :: WRITE) a, writer :: Fiber Unit }
throttleStatic :: forall a. Milliseconds -> queue (read :: READ) a -> Aff { input :: queue (write :: WRITE) a, writer :: Fiber Unit }
messages submitted before
throttleStatic
's time period will be cached until the time has passedintersperseStatic :: forall a. Milliseconds -> Aff a -> queue (read :: READ) a -> Aff { input :: queue (write :: WRITE) a, listener :: Fiber Unit, writer :: Fiber Unit }
messages submitted after
intersperseStatic
's time period will be punctuated with messages generated by the parameter, like pings
#Queue Source
class Queue (queue :: Row SCOPE -> Type -> Type) where
Represents an un-indexed queue - such that identifying handlers is not supported.
Members
new :: forall a. Effect (queue (read :: READ, write :: WRITE) a)
Create a new, empty queue.
putMany :: forall t rw a. Traversable t => queue (write :: WRITE | rw) a -> t a -> Effect Unit
Pushes multiple values on the stack of pending values, or traverses through the handler(s).
popMany :: forall rw a. queue (write :: WRITE | rw) a -> Int -> Effect (Array a)
Pops as many values as indicated off the stack of pending values, if any, in the reverse order they were added - i.e. youngest first.
takeMany :: forall rw a. queue (write :: WRITE | rw) a -> Int -> Effect (Array a)
Pops as many values as indicated off the stack of pending values, if any, in the same order they were added - i.e. oldest first.
takeAll :: forall rw a. queue (write :: WRITE | rw) a -> Effect (Array a)
Equivalent to
length q >>= takeMany q
, but without the overhead.on :: forall rw a. queue (read :: READ | rw) a -> Handler a -> Effect Unit
Assign a handler to capture queue events.
once :: forall a rw. queue (read :: READ | rw) a -> Handler a -> Effect Unit
Removes a handler after first run.
del :: forall rw a. queue (read :: READ | rw) a -> Effect Unit
Removes all handlers from the queue, without affecting the cache.
read :: forall rw a. queue rw a -> Effect (Array a)
Observes the values in the queue without deleting them.
length :: forall rw a. queue rw a -> Effect Int
Length of the cache.
#draw Source
draw :: forall queue a rw. Queue queue => queue (read :: READ | rw) a -> Aff a
Pull the next asynchronous value out of a queue. Doesn't affect existing handlers (they will all receive the value as well). If this action is canceled, all handlers will be removed from the queue, because this interface is un-indexed.
messages submitted before
debounceStatic
's time period will be dropped