Safe Haskell | Safe-Inferred |
---|---|
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
Generic (EventResource resource) Source # | |
Defined in Polysemy.Conc.Effect.Events Associated Types type Rep (EventResource resource) :: Type -> Type # Methods from :: EventResource resource -> Rep (EventResource resource) x # to :: Rep (EventResource resource) x -> EventResource resource # | |
Show resource => Show (EventResource resource) Source # | |
Defined in Polysemy.Conc.Effect.Events Methods showsPrec :: Int -> EventResource resource -> ShowS # show :: EventResource resource -> String # showList :: [EventResource resource] -> ShowS # | |
Eq resource => Eq (EventResource resource) Source # | |
Defined in Polysemy.Conc.Effect.Events Methods (==) :: EventResource resource -> EventResource resource -> Bool # (/=) :: EventResource resource -> EventResource resource -> Bool # | |
type Rep (EventResource resource) Source # | |
Defined in Polysemy.Conc.Effect.Events type Rep (EventResource resource) = D1 ('MetaData "EventResource" "Polysemy.Conc.Effect.Events" "polysemy-conc-0.9.0.0-EjHtQDNYbxi3AMXC1n8iKe" 'True) (C1 ('MetaCons "EventResource" 'PrefixI 'True) (S1 ('MetaSel ('Just "unEventToken") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 resource))) |
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
.