Defnamed v0.1.2 Defnamed.Check View Source

Link to this section Summary

Functions

Shortcut for Elixir.Defnamed.Exception.ArgNamesDuplication exception

Shortcut for Elixir.Defnamed.Exception.InvalidArgNames exception

Shortcut for Elixir.Defnamed.Exception.MissingRequiredArgs exception

Shortcut for Elixir.Defnamed.Exception.NotKeyword exception

Shortcut for "no error" state

Validate keyword list type and keys uniqueness

Validate keyword list according given mapset of valid keys and list of required keys

Link to this section Types

Link to this section Functions

Link to this macro

arg_names_duplication(message) View Source (macro)

Shortcut for Elixir.Defnamed.Exception.ArgNamesDuplication exception

Examples

iex> require Elixir.Defnamed.Check
Elixir.Defnamed.Check
iex> Elixir.Defnamed.Check.arg_names_duplication("my error message")
%Elixir.Defnamed.Exception.ArgNamesDuplication{message: "my error message"}
Link to this macro

invalid_arg_names(message) View Source (macro)

Shortcut for Elixir.Defnamed.Exception.InvalidArgNames exception

Examples

iex> require Elixir.Defnamed.Check
Elixir.Defnamed.Check
iex> Elixir.Defnamed.Check.invalid_arg_names("my error message")
%Elixir.Defnamed.Exception.InvalidArgNames{message: "my error message"}
Link to this macro

missing_required_args(message) View Source (macro)

Shortcut for Elixir.Defnamed.Exception.MissingRequiredArgs exception

Examples

iex> require Elixir.Defnamed.Check
Elixir.Defnamed.Check
iex> Elixir.Defnamed.Check.missing_required_args("my error message")
%Elixir.Defnamed.Exception.MissingRequiredArgs{message: "my error message"}
Link to this macro

not_keyword(message) View Source (macro)

Shortcut for Elixir.Defnamed.Exception.NotKeyword exception

Examples

iex> require Elixir.Defnamed.Check
Elixir.Defnamed.Check
iex> Elixir.Defnamed.Check.not_keyword("my error message")
%Elixir.Defnamed.Exception.NotKeyword{message: "my error message"}

Shortcut for "no error" state

Examples

iex> require Elixir.Defnamed.Check
Elixir.Defnamed.Check
iex> Elixir.Defnamed.Check.ok
:ok
Link to this function

validate_kv!(kv, message) View Source
validate_kv!(term(), String.t()) :: :ok | no_return()

Validate keyword list type and keys uniqueness

Examples

iex> Elixir.Defnamed.Check.validate_kv!([a: 1, b: 2], "Example keyword")
:ok

iex> Elixir.Defnamed.Check.validate_kv!(123, "Example keyword")
** (Defnamed.Exception.NotKeyword) Example keyword should be keyword list without keys duplication, but argument is not a keyword: 123

iex> Elixir.Defnamed.Check.validate_kv!([a: 1, b: 2, b: 2], "Example keyword")
** (Defnamed.Exception.ArgNamesDuplication) Example keyword should be keyword list without keys duplication, but keys [:b] are duplicated
Link to this function

validate_kv!(kv, valid_keys, required_keys, message) View Source
validate_kv!(term(), MapSet.t(atom()), [atom()], String.t()) ::
  :ok | no_return()

Validate keyword list according given mapset of valid keys and list of required keys

Examples

iex> Elixir.Defnamed.Check.validate_kv!([a: 1, b: 2], MapSet.new([:a, :b]), [:a], "Example keyword")
:ok

iex> Elixir.Defnamed.Check.validate_kv!(123, MapSet.new([:a, :b]), [:a], "Example keyword")
** (Defnamed.Exception.NotKeyword) Example keyword should be keyword list which can contain only [:a, :b] keys without duplication, and mandatory [:a] keys, but argument is not a keyword: 123

iex> Elixir.Defnamed.Check.validate_kv!([a: 1, b: 2, b: 2], MapSet.new([:a, :b]), [:a], "Example keyword")
** (Defnamed.Exception.ArgNamesDuplication) Example keyword should be keyword list which can contain only [:a, :b] keys without duplication, and mandatory [:a] keys, but keys [:b] are duplicated

iex> Elixir.Defnamed.Check.validate_kv!([a: 1, b: 2], MapSet.new([:a]), [:a], "Example keyword")
** (Defnamed.Exception.InvalidArgNames) Example keyword should be keyword list which can contain only [:a] keys without duplication, and mandatory [:a] keys, but got invalid :b key

iex> Elixir.Defnamed.Check.validate_kv!([b: 2], MapSet.new([:a, :b]), [:a], "Example keyword")
** (Defnamed.Exception.MissingRequiredArgs) Example keyword should be keyword list which can contain only [:a, :b] keys without duplication, and mandatory [:a] keys, but required :a key is not presented