Packages

Google Cloud Document AI API client library.

Current section

Files

Jump to
googly_document_ai lib googly document_ai decode.ex
Raw

lib/googly/document_ai/decode.ex

# NOTE: This file is auto generated by googly. Do not edit it manually.
defmodule Googly.DocumentAI.Decode do
@moduledoc false
# Small coercion helpers used by generated model `decode/1` functions to turn
# decoded JSON values into richer Elixir types.
@doc false
def datetime(nil), do: nil
def datetime(%DateTime{} = dt), do: dt
def datetime(str) when is_binary(str) do
case DateTime.from_iso8601(str) do
{:ok, dt, _offset} -> dt
_ -> str
end
end
@doc false
def date(nil), do: nil
def date(%Date{} = d), do: d
def date(str) when is_binary(str) do
case Date.from_iso8601(str) do
{:ok, d} -> d
_ -> str
end
end
@doc false
def list(nil, _kind), do: nil
def list(values, DateTime) when is_list(values), do: Enum.map(values, &datetime/1)
def list(values, Date) when is_list(values), do: Enum.map(values, &date/1)
@doc false
def map(nil, _module), do: nil
def map(m, module) when is_map(m), do: Map.new(m, fn {k, v} -> {k, module.decode(v)} end)
end