StateMachine.State behaviour (state_machine v0.1.8)
State module provides a structure describing a state in the state machine definition. It stores state name along with various callbacks to run before/after leaving/entering a state. Another purpose of the module is to define a behaviour for state get/setters along with the default implementation.
The state get/setters for basic structures and Ecto records are provided out of the box.
Summary
Functions
Private function for running state callbacks.
Default implementation of a state getter.
Default implementation of a state setter.
Types
@type callback_pos() :: :before_enter | :after_enter | :before_leave | :after_leave
@type t(model) :: %StateMachine.State{ after_enter: [StateMachine.Callback.t(model)], after_leave: [StateMachine.Callback.t(model)], before_enter: [StateMachine.Callback.t(model)], before_leave: [StateMachine.Callback.t(model)], name: atom() }
Callbacks
@callback get(ctx :: StateMachine.Context.t(any())) :: atom()
@callback set(ctx :: StateMachine.Context.t(model), state :: atom()) :: StateMachine.Context.t(model)
Functions
@spec callback(StateMachine.Context.t(model), callback_pos()) :: StateMachine.Context.t(model)
Private function for running state callbacks.
@spec get(StateMachine.Context.t(any())) :: atom()
Default implementation of a state getter.
@spec set(StateMachine.Context.t(model), atom()) :: StateMachine.Context.t(model)
Default implementation of a state setter.