Defnamed v0.1.3 Defnamed View Source

Compile-time named arguments for Elixir functions and macro

Link to this section Summary

Link to this section Types

Link to this type

t() View Source
t() :: %Defnamed{
  args_struct_ast: tuple(),
  args_struct_list_alias: [atom()],
  args_struct_module_name: module(),
  caller: tuple() | nil,
  caller_module_name: module(),
  default_args_kv: Keyword.t(),
  do_name: atom(),
  original_args_kv: Keyword.t(),
  original_name: atom(),
  required_args: [atom()]
}

Link to this section Functions

Link to this macro

__using__(opts) View Source (macro)

Helper that imports defn/2, defn/3, defpn/2, defpn/3, defmacron/2, defmacron/3, defmacropn/2, defmacropn/3

Examples

iex> use Defnamed
Defnamed
Link to this macro

defmacron(header, body) View Source (macro)

Link to this macro

defmacron(arg, compiletime_params, list) View Source (macro)

Link to this macro

defmacropn(header, body) View Source (macro)

Link to this macro

defmacropn(arg, compiletime_params, list) View Source (macro)

Link to this macro

defn(header, body) View Source (macro)

Link to this macro

defn(arg, compiletime_params, list) View Source (macro)

Link to this macro

defpn(header, body) View Source (macro)

Link to this macro

defpn(arg, compiletime_params, list) View Source (macro)

Link to this function

validate_original_args_kv!(defnamed, validate_keys?) View Source
validate_original_args_kv!(t(), bool()) :: :ok | no_return()