20 lines
343 B
Elixir
20 lines
343 B
Elixir
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
|