@@ -343,15 +343,8 @@ decode_queue({map, KVList}) ->
343
343
({{utf8 , <<" auto_delete" >>}, V }, Acc )
344
344
when is_boolean (V ) ->
345
345
Acc #{auto_delete => V };
346
- ({{utf8 , <<" arguments" >>}, {map , List }}, Acc ) ->
347
- Args = lists :map (fun ({{utf8 , Key = <<" x-" , _ /binary >>}, {utf8 , Val }}) ->
348
- {Key , longstr , Val };
349
- (Arg ) ->
350
- throw (<<" 400" >>,
351
- " unsupported queue argument ~tp " ,
352
- [Arg ])
353
- end , List ),
354
- Acc #{arguments => Args };
346
+ ({{utf8 , <<" arguments" >>}, Args }, Acc ) ->
347
+ Acc #{arguments => args_amqp_to_amqpl (Args )};
355
348
(Prop , _Acc ) ->
356
349
throw (<<" 400" >>, " bad queue property ~tp " , [Prop ])
357
350
end , #{}, KVList ),
@@ -442,15 +435,8 @@ decode_exchange({map, KVList}) ->
442
435
({{utf8 , <<" internal" >>}, V }, Acc )
443
436
when is_boolean (V ) ->
444
437
Acc #{internal => V };
445
- ({{utf8 , <<" arguments" >>}, {map , List }}, Acc ) ->
446
- Args = lists :map (fun ({{utf8 , Key = <<" x-" , _ /binary >>}, {utf8 , Val }}) ->
447
- {Key , longstr , Val };
448
- (Arg ) ->
449
- throw (<<" 400" >>,
450
- " unsupported exchange argument ~tp " ,
451
- [Arg ])
452
- end , List ),
453
- Acc #{arguments => Args };
438
+ ({{utf8 , <<" arguments" >>}, Args }, Acc ) ->
439
+ Acc #{arguments => args_amqp_to_amqpl (Args )};
454
440
(Prop , _Acc ) ->
455
441
throw (<<" 400" >>, " bad exchange property ~tp " , [Prop ])
456
442
end , #{}, KVList ),
@@ -471,17 +457,8 @@ decode_binding({map, KVList}) ->
471
457
Acc #{destination_exchange => V };
472
458
({{utf8 , <<" binding_key" >>}, {utf8 , V }}, Acc ) ->
473
459
Acc #{binding_key => V };
474
- ({{utf8 , <<" arguments" >>}, {map , List }}, Acc ) ->
475
- Args = lists :map (fun ({{T , Key }, TypeVal })
476
- when T =:= utf8 orelse
477
- T =:= symbol ->
478
- mc_amqpl :to_091 (Key , TypeVal );
479
- (Arg ) ->
480
- throw (<<" 400" >>,
481
- " unsupported binding argument ~tp " ,
482
- [Arg ])
483
- end , List ),
484
- Acc #{arguments => Args };
460
+ ({{utf8 , <<" arguments" >>}, Args }, Acc ) ->
461
+ Acc #{arguments => args_amqp_to_amqpl (Args )};
485
462
(Field , _Acc ) ->
486
463
throw (<<" 400" >>, " bad binding field ~tp " , [Field ])
487
464
end , #{}, KVList ).
@@ -511,6 +488,17 @@ encode_bindings(Bindings) ->
511
488
end , Bindings ),
512
489
{list , Bs }.
513
490
491
+ args_amqp_to_amqpl ({map , KVList }) ->
492
+ lists :map (fun ({{T , Key }, TypeVal })
493
+ when T =:= utf8 orelse
494
+ T =:= symbol ->
495
+ mc_amqpl :to_091 (Key , TypeVal );
496
+ (Arg ) ->
497
+ throw (<<" 400" >>,
498
+ " unsupported argument ~tp " ,
499
+ [Arg ])
500
+ end , KVList ).
501
+
514
502
args_amqpl_to_amqp (Args ) ->
515
503
{map , [{{utf8 , K }, mc_amqpl :from_091 (T , V )} || {K , T , V } <- Args ]}.
516
504
0 commit comments