diff --git a/lib/protobuf/protoc/generator/message.ex b/lib/protobuf/protoc/generator/message.ex index bacc05e3..032ef543 100644 --- a/lib/protobuf/protoc/generator/message.ex +++ b/lib/protobuf/protoc/generator/message.ex @@ -370,7 +370,12 @@ defmodule Protobuf.Protoc.Generator.Message do [Map.from_struct(opt) | acc] end end) - |> inspect(limit: :infinity) + |> case do + [] -> + nil + opts -> + inspect(opts, limit: :infinity) + end end defp cal_message_options(_opts) do diff --git a/test/protobuf/protoc/proto/extension3.proto b/test/protobuf/protoc/proto/extension3.proto index 9f685705..62110818 100644 --- a/test/protobuf/protoc/proto/extension3.proto +++ b/test/protobuf/protoc/proto/extension3.proto @@ -10,3 +10,7 @@ message MyEventMessage { option (brex.events.extension.message).is_event = true; google.protobuf.DoubleValue f1 = 1 [(brex.elixirpb.field).extype="float"]; } + +message MyNonEventMessage { + map args = 1; +} diff --git a/test/protobuf/protoc/proto_gen/extension3.pb.ex b/test/protobuf/protoc/proto_gen/extension3.pb.ex index eb24c9ee..4e31c811 100644 --- a/test/protobuf/protoc/proto_gen/extension3.pb.ex +++ b/test/protobuf/protoc/proto_gen/extension3.pb.ex @@ -19,3 +19,39 @@ defmodule Ext.MyEventMessage do field :f1, 1, type: Google.Protobuf.DoubleValue, options: [extype: "float"] end + +defmodule Ext.MyNonEventMessage.ArgsEntry do + @moduledoc false + use Protobuf, custom_field_options?: true, map: true, syntax: :proto3 + + @type t :: %__MODULE__{ + key: String.t(), + value: String.t() + } + + defstruct [:key, :value] + + def full_name do + "ext.MyNonEventMessage.ArgsEntry" + end + + field :key, 1, type: :string + field :value, 2, type: :string +end + +defmodule Ext.MyNonEventMessage do + @moduledoc false + use Protobuf, custom_field_options?: true, syntax: :proto3 + + @type t :: %__MODULE__{ + args: %{String.t() => String.t()} + } + + defstruct [:args] + + def full_name do + "ext.MyNonEventMessage" + end + + field :args, 1, repeated: true, type: Ext.MyNonEventMessage.ArgsEntry, map: true +end