Enumex.Static.Components.Guards behaviour (Enumex v1.0.0)

View Source

A component that generates guard macros for enum value validation.

Example

defmodule MyApp.Enums do
  use Enumex.Static, components: [Enumex.Static.Components.Guards]

  # enum definitions go here
end

Summary

Callbacks

Generates a guard macro that validates enum id, index or value.

Generates a guard macro that validates enum id.

Generates a guard macro that validates enum index.

Generates a guard macro that validates enum value.

Callbacks

is_valid(enum_name, arg2)

Generates a guard macro that validates enum id, index or value.

Examples

iex> import MyApp.Enums
iex> value = Enumex.Value.new(MyApp.Enums, :my_enum, :first, 1)
iex> is_valid(value.id)
true
iex> is_valid(value.index)
true
iex> is_valid(value)
true

is_valid_id(enum_name, id)

@macrocallback is_valid_id(Enumex.Value.enum_name(), Enumex.Value.id()) :: Macro.output()

Generates a guard macro that validates enum id.

Examples

iex> import MyApp.Enums
iex> is_valid_id(:my_enum, :first)
true

is_valid_index(enum_name, index)

@macrocallback is_valid_index(Enumex.Value.enum_name(), Enumex.Value.index()) :: Macro.output()

Generates a guard macro that validates enum index.

Examples

iex> import MyApp.Enums
iex> is_valid_index(:my_enum, 1)
true

is_valid_value(t)

@macrocallback is_valid_value(Enumex.Value.t()) :: Macro.output()

Generates a guard macro that validates enum value.

Examples

iex> import MyApp.Enums
iex> value = Value.new(MyApp.Enums, :my_enum, :first, 1)
iex> is_valid_value(value)
true