lib/type/atom.ex
defmodule XmlSchema.Type.Atom do
@moduledoc """
Type translates a string into an atom on xml parsing. Use
with caution, only for trusted documents. Can lead to
atom exhaustion.
"""
use Ecto.Type
def type, do: :atom
def cast(string) when is_binary(string),
do: String.to_atom(string)
def cast(string) when is_list(string),
do: List.to_atom(string)
def dump(atm), do: to_string(atm)
def equal?(a, b), do: a == b
def load(string), do: String.to_atom(string)
end