lib/datix/option_error.ex

defmodule Datix.OptionError do
  @moduledoc """
  An exception that represents an error with some options.
  """
  @moduledoc since: "0.3.0"

  @type reason :: :missing | :unknown

  @type t :: %__MODULE__{reason: reason, option: atom}

  defexception [:reason, :option]

  @impl true
  def message(%__MODULE__{reason: reason, option: option}) do
    case reason do
      :missing -> "missing option #{inspect(option)}"
      :unknown -> "unknown option #{inspect(option)}"
    end
  end
end