Packages
reactor
0.8.1
1.0.2
1.0.1
1.0.0
0.17.0
0.16.0
0.15.6
0.15.5
0.15.4
0.15.3
0.15.2
0.15.1
0.15.0
0.14.0
0.13.3
0.13.2
0.13.1
0.13.0
0.12.1
0.12.0
0.11.0
0.10.3
0.10.2
0.10.1
0.10.0
0.9.1
0.9.0
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.0
0.6.0
0.5.2
0.5.1
0.5.0
0.4.1
0.4.0
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.0
An asynchronous, graph-based execution engine
Current section
Files
Jump to
Current section
Files
lib/reactor/error/validation/state_error.ex
defmodule Reactor.Error.Validation.StateError do
@moduledoc """
An error returned when a Reactor is in an unexpected state.
"""
use Reactor.Error,
fields: [:reactor, :state, :expected],
class: :validation
@doc false
@impl true
def message(error) do
"""
# Reactor State Error
#{state_message(error)}
"""
end
defp state_message(%{expected: [], state: state}),
do: "Reactor is in an invalid state: `#{inspect(state)}`"
defp state_message(%{expected: [expected], state: state}),
do: "Reactor is in an invalid state: `#{inspect(state)}`, expected: `#{inspect(expected)}`"
defp state_message(error) do
valid_states =
error.expected
|> Enum.map_join("\n", &" * `#{inspect(&1)}`")
"""
Reactor is in an invalid state: `#{inspect(error.state)}`
Expected states:
#{valid_states}
"""
end
end