# NOTE: This file is auto generated by googly. Do not edit it manually. defmodule Googly.CloudVision.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