summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2013-02-01 16:34:51 +0000
committerSimon MacMullen <simon@rabbitmq.com>2013-02-01 16:34:51 +0000
commit2aeb9b45d09c9f29c4395854d7a34f3e85751249 (patch)
tree0b87a205f60fe9cf05bd35e0ab849c00a60f0e53
parent819bc71fe544f8d26cf5c7c704bd7b3b663e1c5c (diff)
downloadrabbitmq-server-git-2aeb9b45d09c9f29c4395854d7a34f3e85751249.tar.gz
rabbit_parameter_validation:enum/1
-rw-r--r--src/rabbit_parameter_validation.erl14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/rabbit_parameter_validation.erl b/src/rabbit_parameter_validation.erl
index 39d0188cba..a8dfdd3a4d 100644
--- a/src/rabbit_parameter_validation.erl
+++ b/src/rabbit_parameter_validation.erl
@@ -16,7 +16,7 @@
-module(rabbit_parameter_validation).
--export([number/2, binary/2, boolean/2, list/2, regex/2, proplist/3]).
+-export([number/2, binary/2, boolean/2, list/2, regex/2, proplist/3, enum/1]).
number(_Name, Term) when is_number(Term) ->
ok;
@@ -73,3 +73,15 @@ proplist(Name, Constraints, Term) when is_list(Term) ->
proplist(Name, _Constraints, Term) ->
{error, "~s not a list ~p", [Name, Term]}.
+
+enum(OptionsA) ->
+ Options = [list_to_binary(atom_to_list(O)) || O <- OptionsA],
+ fun (Name, Term) when is_binary(Term) ->
+ case lists:member(Term, Options) of
+ true -> ok;
+ false -> {error, "~s should be one of ~p, actuaklly was ~p",
+ [Name, Options, Term]}
+ end;
+ (Name, Term) ->
+ {error, "~s should be binary, actually was ~p", [Name, Term]}
+ end.