defmodule Outlook.Articles.RawInternalTree do use Ecto.Type def type, do: :string def cast([] = tree) do {:ok, tree} end def cast(_), do: :error def load(tree) when is_binary(tree) do {:ok, Jason.decode!(tree, keys: :atoms!)} end def dump([] = tree ), do: {:ok, Jason.encode!(tree)} def dump(_), do: :error end