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)