@@ -265,32 +265,29 @@ body_bin(#amqp10_msg{body = #'v1_0.amqp_value'{} = Body}) ->
265265% % A disposition will be notified to the sender by a message of the
266266% % following stucture:
267267% % {amqp10_disposition, {accepted | rejected, DeliveryTag}}
268- -spec new (delivery_tag (), amqp10_body () | binary (), boolean ()) -> amqp10_msg ().
268+ -spec new (delivery_tag (), amqp10_body () | binary () | [ amqp10_client_types : amqp10_msg_record ()] , boolean ()) -> amqp10_msg ().
269269new (DeliveryTag , Bin , Settled ) when is_binary (Bin ) ->
270270 Body = [# 'v1_0.data' {content = Bin }],
271271 new (DeliveryTag , Body , Settled );
272272new (DeliveryTag , Body , Settled ) -> % TODO: constrain to amqp types
273+ Transfer = # 'v1_0.transfer' {
274+ delivery_tag = {binary , DeliveryTag },
275+ settled = Settled ,
276+ message_format = {uint , ? MESSAGE_FORMAT }},
273277 case is_amqp10_body (Body ) orelse (not is_list (Body )) of
274278 true ->
275279 # amqp10_msg {
276- transfer = # 'v1_0.transfer' {
277- delivery_tag = {binary , DeliveryTag },
278- settled = Settled ,
279- message_format = {uint , ? MESSAGE_FORMAT }},
280+ transfer = Transfer ,
280281 % % This lib is safe by default.
281282 header = # 'v1_0.header' {durable = true },
282283 body = Body };
283284 false ->
284- Transfer = # 'v1_0.transfer' {
285- delivery_tag = {binary , DeliveryTag },
286- settled = Settled ,
287- message_format = {uint , ? MESSAGE_FORMAT }},
288285 from_amqp_records ([Transfer | Body ])
289286 end .
290287
291288% % @doc Create a new settled amqp10 message using the specified delivery tag
292289% % and body.
293- -spec new (delivery_tag (), amqp10_body () | binary ()) -> amqp10_msg ().
290+ -spec new (delivery_tag (), amqp10_body () | binary () | [ amqp10_client_types : amqp10_msg_record ()] ) -> amqp10_msg ().
294291new (DeliveryTag , Body ) ->
295292 new (DeliveryTag , Body , false ).
296293
0 commit comments