@@ -139,15 +139,14 @@ defmodule Protobuf.Text do
139139 @ spec encode_value ( term ( ) , :proto2 | :proto3 , FieldProps . t ( ) , boolean ( ) ) :: Algebra . t ( )
140140 defp encode_value ( value , syntax , % { repeated?: true } = field_prop , print_unknown? )
141141 when is_list ( value ) do
142- fun = fn val , _opts -> encode_value ( val , syntax , field_prop , print_unknown? ) end
143- Algebra . container_doc ( "[" , value , "]" , inspect_opts ( ) , fun , break: :strict )
142+ encode_list ( value , syntax , field_prop , print_unknown? )
144143 end
145144
146- defp encode_value ( value , syntax , % { map?: true , repeated?: false } = field_prop , print_unknown? ) do
145+ defp encode_value ( value , syntax , % { map?: true } = field_prop , print_unknown? ) do
147146 as_list =
148147 Enum . map ( value , fn { k , v } -> struct ( field_prop . type , key: k , value: v ) end )
149148
150- encode_value ( as_list , syntax , % { field_prop | repeated?: true } , print_unknown? )
149+ encode_list ( as_list , syntax , field_prop , print_unknown? )
151150 end
152151
153152 defp encode_value ( value , _syntax , % { embedded?: true , type: mod } , print_unknown? ) do
@@ -168,6 +167,11 @@ defmodule Protobuf.Text do
168167 inspect ( value )
169168 end
170169
170+ defp encode_list ( list , syntax , field_prop , print_unknown? ) do
171+ fun = fn val , _opts -> encode_value ( val , syntax , % { field_prop | repeated?: false , map?: false } , print_unknown? ) end
172+ Algebra . container_doc ( "[" , list , "]" , inspect_opts ( ) , fun , break: :strict )
173+ end
174+
171175 defp transform_module ( message , module ) do
172176 if transform_module = module . transform_module ( ) do
173177 transform_module . encode ( message , module )
0 commit comments