Flexflow
Usage
defmodule Verify do
@moduledoc false
defmodule Uncertified do
use Flexflow.Node
end
defmodule Certified do
use Flexflow.Node
end
defmodule Rejected do
use Flexflow.Node
end
defmodule Canceled do
use Flexflow.Node
end
defmodule Cert do
use Flexflow.Transition
@impl true
def handle_enter(_, _, _), do: :pass
end
defmodule Modify do
use Flexflow.Transition
@impl true
def handle_enter(_, _, _), do: :pass
end
defmodule Reject do
use Flexflow.Transition
@impl true
def handle_enter(_, _, _), do: :pass
end
defmodule Cancel do
use Flexflow.Transition
@impl true
def handle_enter(_, _, _), do: :pass
end
use Flexflow.Process, version: 1
defnode Uncertified
defnode Certified
defnode Rejected
defnode Canceled
deftransition Cert, {Uncertified, Certified}
deftransition Modify, {Uncertified, Uncertified}
deftransition Reject, {Uncertified, Rejected}
deftransition Cancel, {Uncertified, Canceled}
deftransition Modify, {Rejected, Uncertified}
deftransition Cancel, {Rejected, Canceled}
end
<summary><img src="https://g.gravizo.com/source/custom_mark10?https%3A%2F%2Fraw.githubusercontent.com%2Fclszzyh%2Fflexflow%2Fmaster%2FREADME.md" width="50%"></summary>```dot// custom_mark10digraph verify { size = "4,4"; uncertified [label=uncertified,shape=box]; certified [label=certified,shape=box]; rejected [label=rejected,shape=box]; canceled [label=canceled,shape=box]; uncertified -> certified [label=cert]; uncertified -> uncertified [label=modify,color=blue]; uncertified -> rejected [label=reject]; uncertified -> canceled [label=cancel]; rejected -> uncertified [label=modify]; rejected -> canceled [label=cancel];}// custom_mark10```