Enumex.Static.Components.Guards behaviour (Enumex v1.0.0)
View SourceA 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
@macrocallback is_valid( Enumex.Value.enum_name(), Enumex.Value.id() | Enumex.Value.index() | Enumex.Value.t() ) :: Macro.output()
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
@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
@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
@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