# `Croma.SubtypeOfAtom`
[🔗](https://github.com/skirino/croma/blob/main/lib/croma/subtype.ex#L286)

Helper module to define type whose members are a fixed set of atoms.
The following members are generated by `use Croma.SubtypeOfAtom`:

- `@type t`
- `@spec valid?(term) :: boolean`
- `@spec new(term) :: Croma.Result.t(t)` (tries to convert `String.t` to the given set of atoms)
- `@spec new!(term) :: t`

Options:
- `:values` - List of atoms of possible values.
- `:default` - Default value for this type. Passing this option generates `default/0`.

## Examples
    defmodule MyAtom do
      use Croma.SubtypeOfAtom, values: [:foo, :bar, :baz], default: :foo
    end

---

*Consult [api-reference.md](api-reference.md) for complete listing*
