e11y-0.1.0.0: An event-oriented observability library
CopyrightCopyright 2024 Shea Levy.
LicenseApache-2.0
Maintainershea@shealevy.com
Safe HaskellSafe-Inferred
LanguageGHC2021

Observe.Event.Backend.Data

Description

This module provides the DataEventBackend EventBackend for consuming events by representing them as ordinary Haskell data.

Synopsis

Documentation

newDataEventBackend :: forall m selector. (PrimMonad m, ParametricFunctor m) => m (DataEventBackend m selector) Source #

Allocate a new DataEventBackend

getEvents :: PrimMonad m => DataEventBackend m selector -> m (Seq (Maybe (DataEvent selector))) Source #

Read the events that have been emitted using the DataEventBackend

A Nothing indicates an event that hasn't been finalized.

data DataEvent selector Source #

A representation of an event.

Constructors

forall f. DataEvent 

Fields

data Selectors selector field where Source #

A nested sequence of selectors, starting from a given root selector family and ending in a selector selecting a given field type.

For example, given:

data FooSelector :: Type -> Type where Foo :: FooSelector FooField
data FooField
type instance SubSelector FooField = BarSelector
data BarSelector :: Type -> Type where Bar :: BarSelector BarField
data BarField
type instance SubSelector BarField = NoEventsSelector

Then Leaf Foo is a sequence Selectors picking out an Event with field type FooField, and Foo :/ Leaf Bar is a sequence of Selectors picking out an Event with field type BarField underneath an Event with field type FooField.

See the selector and field documentation for more details.

Constructors

Leaf :: selector field -> Selectors selector field 
(:/) :: selector field -> Selectors (SubSelector field) field' -> Selectors selector field' infixr 5 

data DataEventBackend m selector Source #

An EventBackend for consuming events by representing them as ordinary Haskell data.

Create a new one with newDataEventBackend. Get the event data with getEvents.

Instances

Instances details
(PrimMonad m, ParametricFunctor m) => EventBackendIn m (DataEventBackend m selector) Source #

Consume events by representing them as ordinary Haskell data.

Instance details

Defined in Observe.Event.Backend.Data

EventBackend (DataEventBackend m selector) Source #

Consume events by representing them as ordinary Haskell data.

Instance details

Defined in Observe.Event.Backend.Data

Associated Types

type BackendEvent (DataEventBackend m selector) :: Type -> Type Source #

type RootSelector (DataEventBackend m selector) :: Type -> Type Source #

type BackendEvent (DataEventBackend m selector) Source # 
Instance details

Defined in Observe.Event.Backend.Data

type BackendEvent (DataEventBackend m selector)
type RootSelector (DataEventBackend m selector) Source # 
Instance details

Defined in Observe.Event.Backend.Data

type RootSelector (DataEventBackend m selector) = selector