Current section

Files

Jump to
agent_session_manager lib asm options unsupported_option_error.ex
Raw

lib/asm/options/unsupported_option_error.ex

defmodule ASM.Options.UnsupportedOptionError do
@moduledoc """
Returned when a strict ASM common preflight receives an unsupported option.
"""
defexception [:key, :provider, :mode, :reason, :message]
@type t :: %__MODULE__{
key: atom() | term(),
provider: atom() | nil,
mode: atom() | nil,
reason: atom() | term(),
message: String.t()
}
@impl true
def exception(opts) do
key = Keyword.get(opts, :key)
provider = Keyword.get(opts, :provider)
mode = Keyword.get(opts, :mode)
reason = Keyword.get(opts, :reason, :unsupported)
message =
Keyword.get_lazy(opts, :message, fn ->
"unsupported ASM option #{inspect(key)} for provider #{inspect(provider)} in #{inspect(mode)} mode"
end)
%__MODULE__{key: key, provider: provider, mode: mode, reason: reason, message: message}
end
end