Skip to main content

Module spec

Module spec 

Source
Expand description

The settings of an outbox table described by hand, as types.

Each typed setter of OutboxSpec adds one marker of this module to the table’s settings, and the table’s type Table lists them in the order the chain sets them. A setting the chain leaves out keeps its default: no headers column, a processed record deleted, and the crate’s events. A setting set twice does not compile (Merge).

Modules§

own
The events a record runs itself instead of the crate’s default, each set by OutboxSpec::own; the record implements the event’s trait of outbox.

Structs§

Headers
The published headers, kept in one column: set by OutboxSpec::headers. The record implements HeaderRow.
OutboxSpec
The description of an outbox table, with its settings as types.
ProcessedAt
The time a record was processed, which the database’s clock writes: set by OutboxSpec::processed_at. Without it a processed record is deleted.
Set
A setting a table sets, with the marker that sets it.
Unset
A setting a table leaves at its default.

Traits§

Declaration
The settings of an outbox table, one associated type per setting: Unset where the table keeps the default, Set with the marker that sets it otherwise.
Described
An outbox table’s description: OutboxSpec, with settings that fold into one Declaration. Machinery behind OutboxTable::Table.
Merge
Folds one setting of two declarations into one; a setting set by both has no fold.
OutboxTable
An outbox record described by hand: the trait #[derive(Outbox)] implements, and what a service implements instead of the derive.
OwnEvent
An event a record runs itself: a marker of own, which OutboxSpec::own takes.
Push
Appends a marker to a tuple of markers: what a typed setter of a table’s spec does to its settings.