Ash.Type.Enum behaviour (ash v1.47.12) View Source
A type for abstracting enums into a single type.
For example, you might have:
attribute :status, :atom, constraints: [one_of: [:open, :closed]]
But as that starts to spread around your system you may find that you want to centralize that logic. To do that, use this module to define an Ash type easily.
defmodule MyApp.TicketStatus do
use Ash.Type.Enum, values: [:open, :closed]
end
Valid values are:
- The atom itself, e.g
:open
- A string that matches the atom, e.g
"open"
- A string that matches the atom after being downcased, e.g
"OPEN"
or"oPeN"
- A string that matches the stringified, downcased atom, after itself being downcased.
This allows for enum values like
:Open
,:SomeState
and:Some_State
Link to this section Summary
Callbacks
finds the valid value that matches a given input term
true if a given term matches a value
The list of valid values (not all input types that match them)
Link to this section Callbacks
Specs
finds the valid value that matches a given input term
Specs
true if a given term matches a value
Specs
values() :: [atom()]
The list of valid values (not all input types that match them)