fsmx v0.5.0 Fsmx.Struct View Source
Main module to include finite-state machine logic into your struct/schema
If no state_field is defined, it assumes the name is :state.
Basic usage:
defmodule MyApp.Struct do
defstruct [:state]
use Fsmx.Struct, transitions: %{}
endYou can also specify a custom state field:
defmodule MyApp.Struct do
defstruct [:my_state]
use Fsmx.Struct, state_field: :my_state, transitions: %{}
endOr even multiple state fields, that will behave independently and have their
own transition definition, etc. In this case :state is still used as the
default:
defmodule MyApp.Struct do
defstruct [:state, :other_state]
use Fsmx.Struct, transitions: %{}
use Fsmx.Struct, state_field: :other_state, transitions: %{}
end