summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2010-06-10 17:35:28 +0100
committerSimon MacMullen <simon@rabbitmq.com>2010-06-10 17:35:28 +0100
commitec0bec058cc8614068a926c762d737c0364d8911 (patch)
tree5886fd82f7792265fac45b72baaa11f6925b3605
parent325666220885a680c2b03733e071ee62a82d3722 (diff)
downloadrabbitmq-server-ec0bec058cc8614068a926c762d737c0364d8911.tar.gz
Use unification rather than when clause. Also remove separate assert_type as it's buying us very little.
-rw-r--r--src/rabbit_exchange.erl26
1 files changed, 8 insertions, 18 deletions
diff --git a/src/rabbit_exchange.erl b/src/rabbit_exchange.erl
index ff973395..ee7160ea 100644
--- a/src/rabbit_exchange.erl
+++ b/src/rabbit_exchange.erl
@@ -189,29 +189,19 @@ check_type(TypeBin) ->
T
end.
-assert_equivalence(X = #exchange{ durable = ActualDurable,
- auto_delete = ActualAutoDelete,
- type = ActualType},
- RequiredType, RequiredDurable, RequiredAutoDelete,
- RequiredArgs)
- when ActualDurable =:= RequiredDurable andalso
- ActualAutoDelete =:= RequiredAutoDelete ->
- ok = assert_type(X, RequiredType),
- ok = (type_to_module(ActualType)):assert_args_equivalence(X, RequiredArgs);
+assert_equivalence(X = #exchange{ durable = Durable,
+ auto_delete = AutoDelete,
+ type = Type},
+ Type, Durable, AutoDelete,
+ RequiredArgs) ->
+ ok = (type_to_module(Type)):assert_args_equivalence(X, RequiredArgs);
assert_equivalence(#exchange{ name = Name }, _Type, _Durable, _AutoDelete,
_Args) ->
rabbit_misc:protocol_error(
- not_allowed, "cannot redeclare ~s with different durable value",
+ not_allowed,
+ "cannot redeclare ~s with different type, durable or autodelete value",
[rabbit_misc:rs(Name)]).
-assert_type(#exchange{ type = ActualType }, RequiredType)
- when ActualType == RequiredType ->
- ok;
-assert_type(#exchange{ name = Name, type = ActualType }, RequiredType) ->
- rabbit_misc:protocol_error(
- not_allowed, "cannot redeclare ~s of type '~s' with type '~s'",
- [rabbit_misc:rs(Name), ActualType, RequiredType]).
-
alternate_exchange_value(Args) ->
lists:keysearch(<<"alternate-exchange">>, 1, Args).