lib/protobuf/transform_module/infer_fields_from_enum.ex
defmodule Protobuf.TransformModule.InferFieldsFromEnum do
@moduledoc """
For structs with a `Protobuf.TransformModule` set, the `c:Protobuf.new/1` function
does not get called. This transform module brings back the original behavior of calling
`c:Protobuf.new/1` before the value is encoded.
"""
@behaviour Protobuf.TransformModule
@impl true
def encode(value, type), do: type.new(value)
@impl true
def decode(value, _type), do: value
end