pallet.action-impl documentation

Provides a data structure for pallet's actions. This is the internal representation of an action. User code should use pallet.action, where actions are represented via the functions that insert them into the session action plan.

Each action has a symbol associated with an action is used in error messages. The symbol does not have to resolve to a var.

The execution specifies the execution model for the action.

Precedence is stored as a map, with :always-before and :always-after keys.

Each implementation is represented as a map of metadata and function. The map is stored in a map in an atom on the ::impls key of the metadata of the action, keyed by the dispatch value. This allows for the implementation function to be an anonymous named function, while still having metadata associated with it.

action-execution

fn

[action]

Return the execution model for the action.

action-precedence

fn

[action]

Return the precedence map for the action.

action-symbol

fn

[action]

Return the action's symbol.

make-action

fn

[action-symbol execution precedence]

Function to create an action. The action will have no initial implementations.