View Source Corsa.StateM.Model (corsa v0.1.2)
This module generates a state machine model using contract information.
Examples
iex> defmodule Elixir.Corsa.StateM.Model.Example1 do
...> use Corsa.Assert
...> use Corsa.StateM.Init
...> use Corsa.StateM.Post
...> use Corsa.StateM.Next
...> use Corsa.StateM.Model
...>
...> init 0
...> next f(), do: state + 1
...> post f(), do: result == state
...> def f() do 0 end
...> end
iex> Elixir.Corsa.StateM.Model.Example1.init()
0
iex> Elixir.Corsa.StateM.Model.Example1.cmds()
[f: 0]
iex> Elixir.Corsa.StateM.Model.Example1.next(0, {:call, Elixir.Corsa.StateM.Model.Example1, :f, []}, 0)
1
iex> Elixir.Corsa.StateM.Model.Example1.post(1, {:call, Elixir.Corsa.StateM.Model.Example1, :f, []}, 0)