summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancesco Mazzoli <francesco@rabbitmq.com>2012-04-11 13:34:15 +0100
committerFrancesco Mazzoli <francesco@rabbitmq.com>2012-04-11 13:34:15 +0100
commit8d441fbd3c212e68bb236b8be2b51c9e4e807e03 (patch)
tree0e6ecfafe4e8772b7afa3b06fafc8010b0b859ed
parentfe8e5bf03098a9393ad0f1db433cf97cea4d2fc2 (diff)
downloadrabbitmq-server-8d441fbd3c212e68bb236b8be2b51c9e4e807e03.tar.gz
Added sane set and tree difference functions.
-rw-r--r--src/rabbit_misc.erl9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/rabbit_misc.erl b/src/rabbit_misc.erl
index c1be7613..82e3a3f2 100644
--- a/src/rabbit_misc.erl
+++ b/src/rabbit_misc.erl
@@ -60,6 +60,7 @@
-export([multi_call/2]).
-export([quit/1]).
-export([os_cmd/1]).
+-export([gb_sets_difference/2, gb_trees_difference/2]).
%%----------------------------------------------------------------------------
@@ -204,6 +205,8 @@
([pid()], any()) -> {[{pid(), any()}], [{pid(), any()}]}).
-spec(quit/1 :: (integer() | string()) -> no_return()).
-spec(os_cmd/1 :: (string()) -> string()).
+-spec(gb_sets_difference/2 :: (gb_set(), gb_set()) -> gb_set()).
+-spec(gb_trees_difference/2 :: (gb_tree(), gb_tree()) -> gb_tree()).
-endif.
@@ -912,3 +915,9 @@ os_cmd(Command) ->
false -> throw({command_not_found, Exec});
_ -> os:cmd(Command)
end.
+
+gb_sets_difference(S1, S2) ->
+ lists:foldl(fun gb_sets:delete/2, S1, gb_sets:to_list(S2)).
+
+gb_trees_difference(T1, T2) ->
+ lists:foldl(fun gb_trees:delete/2, T1, gb_trees:to_list(T2)).