Current section

Files

Jump to
protobuf priv templates message.ex.eex
Raw

priv/templates/message.ex.eex

defmodule <%= name %> do
@moduledoc false
use Protobuf<%= options %>
<%= typespec %>
defstruct [<%= struct_fields %>]
<%= if not is_nil(desc) do %>
def descriptor do
# credo:disable-for-next-line
<%= desc.__struct__ %>.decode(
<%= desc.__struct__.encode(desc |> Map.from_struct() |> Enum.filter(fn {_, x} -> x != nil end) |> desc.__struct__.new()) |> inspect(limit: :infinity) %>
)
end
<% end %>
<%= for v <- oneofs do %> <%= v %>
<% end %>
<%= for f <- fields do %> field <%= f %>
<% end %>
def transform_module(), do: <%= inspect(transform_module) %>
<%= if not is_nil(extensions) do %>
extensions <%= extensions %>
<% end %>
end