diff options
| author | Giuseppe Privitera <priviterag@gmail.com> | 2015-09-02 09:24:56 +0100 |
|---|---|---|
| committer | Giuseppe Privitera <priviterag@gmail.com> | 2015-09-03 10:08:56 +0100 |
| commit | f1377540aa410eb26a2f8e7fae489044d6636b7b (patch) | |
| tree | 46a6d4d6f0ea6832c83aac66c3b538699ba8a918 /src | |
| parent | 43b04fee5990f23d28cefdd5ecf67b4fc1c05297 (diff) | |
| download | rabbitmq-server-git-f1377540aa410eb26a2f8e7fae489044d6636b7b.tar.gz | |
implemented rabbit_misc:plmerge/2 to merge property lists
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_misc.erl | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/rabbit_misc.erl b/src/rabbit_misc.erl index a781f18895..b45d600217 100644 --- a/src/rabbit_misc.erl +++ b/src/rabbit_misc.erl @@ -54,7 +54,7 @@ -export([const/1]). -export([ntoa/1, ntoab/1]). -export([is_process_alive/1]). --export([pget/2, pget/3, pget_or_die/2, pmerge/3, pset/3]). +-export([pget/2, pget/3, pget_or_die/2, pmerge/3, pset/3, plmerge/2]). -export([format_message_queue/2]). -export([append_rpc_all_nodes/4]). -export([os_cmd/1]). @@ -228,6 +228,7 @@ -spec(pget/3 :: (term(), [term()], term()) -> term()). -spec(pget_or_die/2 :: (term(), [term()]) -> term() | no_return()). -spec(pmerge/3 :: (term(), term(), [term()]) -> term()). +-spec(plmerge/2 :: ([term()], [term()]) -> term()). -spec(pset/3 :: (term(), term(), [term()]) -> term()). -spec(format_message_queue/2 :: (any(), priority_queue:q()) -> term()). -spec(append_rpc_all_nodes/4 :: ([node()], atom(), atom(), [any()]) -> [any()]). @@ -883,12 +884,19 @@ pget_or_die(K, P) -> V -> V end. +%% property merge pmerge(Key, Val, List) -> case proplists:is_defined(Key, List) of true -> List; _ -> [{Key, Val} | List] end. +%% proplists merge +plmerge(P1, P2) -> + K1 = proplists:get_keys(P1), + K2 = proplists:get_keys(P2), + P1 ++ [X || {K, _} = X <- P2, lists:member(K, K2 -- K1)]. + pset(Key, Value, List) -> [{Key, Value} | proplists:delete(Key, List)]. format_message_queue(_Opt, MQ) -> |
