Packages

An Elixir implementation of Multiaddr

Current section

Files

Jump to
ex_multiaddr lib error.ex
Raw

lib/error.ex

defmodule Multiaddr.Error do
@moduledoc false
defexception [:reason]
def exception(reason),
do: %__MODULE__{reason: reason}
def message(%__MODULE__{reason: reason}),
do: format_error(reason)
def format_error({:error, reason}), do: format_error(reason)
def format_error({:invalid_bytes, bytes_offset}),
do: "Corrupted Multiaddr. Wrong bytes in offset: #{bytes_offset}"
def format_error({:invalid_string, value}),
do: "Invalid Multiaddr. Wrong string : #{value}"
def format_error({:invalid_order, value}),
do: "Multiaddr with invalid ordered protocols: #{value}"
def format_error({:invalid_protocol_name, value}),
do: "Invalid protocol name for Multiaddr: #{value}"
def format_error({:invalid_protocol_code, value}),
do: "Invalid protocol code for Multiaddr: #{value}"
def format_error(error), do: "Unknown error! #{error}"
end