Maxine.Machine (Maxine v0.2.6)

The actual machine structure

Link to this section Summary

Link to this section Types

Specs

callback() ::
  (from :: state_name(), to :: state_name(), event_name(), event_options() ->
     %Maxine.Data{app: term(), options: term(), tmp: term()})
Link to this type

callback_map()

Specs

callback_map() :: %{
  entering: cb_listing(),
  leaving: cb_listing(),
  events: cb_listing(),
  index: cb_index()
}

Specs

cb_index() :: %{required(cb_name()) => callback()}
Link to this type

cb_listing()

Specs

cb_listing() :: %{required(name()) => cb_name() | [cb_name()]}

Specs

cb_name() :: atom()
Link to this type

event_name()

Specs

event_name() :: atom()
Link to this type

event_options()

Specs

event_options() :: []
Link to this type

groups_map()

Specs

groups_map() :: %{required(name()) => [name()]}

Specs

name() :: state_name() | event_name() | cb_name()
Link to this type

state_name()

Specs

state_name() :: atom()

Specs

t() :: %Maxine.Machine{
  callbacks: callback_map(),
  groups: groups_map(),
  initial: state_name(),
  transitions: transition_map()
}
Link to this type

transition_map()

Specs

transition_map() :: %{
  required(event_name()) => %{required(state_name()) => state_name()}
}