lib/ex_waiter/polling/invalid_result.ex
defmodule ExWaiter.Polling.InvalidResult do
defexception [:message]
@impl true
def exception(result) do
msg = """
Expected:
{:ok, value} or :ok for success
{:error, value} or :error for failure
Got:
#{inspect(result)}
Examples:
Returning a tagged tuple ensures that the Project is returned
from poll/2.
%Project{name: name} = poll(fn ->
case Projects.get(1) do
%Project{} = project -> {:ok, project}
value -> {:error, value}
end
end)
"""
%__MODULE__{message: msg}
end
end