Module catalog_implications

Source
Expand description

Logic related to deriving and applying implications from catalog changes.

The flow from “raw” catalog changes to CatalogImplication works like this:

StateUpdateKind -> ParsedStateUpdate -> CatalogImplication

ParsedStateUpdate adds context to a “raw” catalog change (StateUpdateKind). It includes an in-memory representation of the updated object, which can in theory be derived from the raw change but only when we have access to all the other raw changes or to an in-memory Catalog, which represents a “rollup” of all the raw changes.

CatalogImplication is both the state machine that we use for absorbing multiple state updates for the same object and the final command that has to be applied to in-memory state and or the controller(s) after absorbing all the state updates in a given batch of updates.

Modules§

parsed_state_updates
Utilities for parsing and augmenting “raw” catalog changes (StateUpdateKind), so that we can update in-memory adapter state, apply implications, and apply derived commands to the controller(s).

Macros§

impl_absorb_method 🔒
Macro to generate absorb methods for each item type.

Enums§

CatalogImplication 🔒
A state machine for building catalog implications from catalog updates.
CatalogImplicationKind 🔒