| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Polysemy.Conc.Effect.Events
Description
Synopsis
- newtype EventResource resource = EventResource {
- unEventToken :: resource
- data Events (resource :: Type) (e :: Type) :: Effect where
- publish :: forall e resource r. Member (Events resource e) r => e -> Sem r ()
- data Consume (e :: Type) :: Effect where
- consume :: forall e r. Member (Consume e) r => Sem r e
- subscribe :: forall e resource r. Member (Scoped (EventResource resource) (Consume e)) r => InterpreterFor (Consume e) r
Documentation
newtype EventResource resource Source #
Constructors
| EventResource | |
Fields
| |
Instances
data Events (resource :: Type) (e :: Type) :: Effect where Source #
An event publisher that can be consumed from multiple threads.
Instances
| type DefiningModule Events Source # | |
Defined in Polysemy.Conc.Effect.Events | |
publish :: forall e resource r. Member (Events resource e) r => e -> Sem r () Source #
Publish one event.
data Consume (e :: Type) :: Effect where Source #
Consume events emitted by Events.
Instances
| type DefiningModule Consume Source # | |
Defined in Polysemy.Conc.Effect.Events | |
subscribe :: forall e resource r. Member (Scoped (EventResource resource) (Consume e)) r => InterpreterFor (Consume e) r Source #
Create a new scope for Events, causing the nested program to get its own copy of the event stream.
To be used with interpretEventsChan.