Current section

Files

Jump to
kivra_merlin include internal.hrl
Raw

include/internal.hrl

-ifndef(MERLIN_INTERNAL_HRL).
-define(MERLIN_INTERNAL_HRL, true).
-define(raise_error(Reason, Arguments),
erlang:error(Reason, Arguments, [{error_info, #{module => merlin_error}}])
).
-define(raise_error(Reason, Arguments, Options),
erlang:error(Reason, Arguments, [{error_info, (Options)#{module => merlin_error}}])
).
-define(is_string(Value),
(is_list(Value) andalso length(Value) > 0 andalso is_integer(hd(Value)))
).
-define(is_non_neg_integer(Value),
(is_integer(Value) andalso Value >= 0)
).
-define(is_pos_integer(Value),
(is_integer(Value) andalso Value > 0)
).
%% Poor mans `in' operator
-define(oneof(Value, Alt1, Alt2), (Value =:= Alt1 orelse Value =:= Alt2)).
%% Poor mans `in' operator
-define(oneof(Value, Alt1, Alt2, Alt3),
(Value =:= Alt1 orelse ?oneof(Value, Alt2, Alt3))
).
%% Poor mans `in' operator
-define(oneof(Value, Alt1, Alt2, Alt3, Alt4),
(Value =:= Alt1 orelse ?oneof(Value, Alt2, Alt3, Alt4))
).
%% Poor mans `in' operator
-define(oneof(Value, Alt1, Alt2, Alt3, Alt4, Alt5),
(Value =:= Alt1 orelse ?oneof(Value, Alt2, Alt3, Alt4, Alt5))
).
%% Poor mans `in' operator
-define(oneof(Value, Alt1, Alt2, Alt3, Alt4, Alt5, Alt6),
(Value =:= Alt1 orelse ?oneof(Value, Alt2, Alt3, Alt4, Alt5, Alt6))
).
%% Poor mans `in' operator
-define(oneof(Value, Alt1, Alt2, Alt3, Alt4, Alt5, Alt6, Alt7),
(Value =:= Alt1 orelse ?oneof(Value, Alt2, Alt3, Alt4, Alt5, Alt6, Alt7))
).
%% Poor mans `in' operator
-define(oneof(Value, Alt1, Alt2, Alt3, Alt4, Alt5, Alt6, Alt7, Alt8),
(Value =:= Alt1 orelse ?oneof(Value, Alt2, Alt3, Alt4, Alt5, Alt6, Alt7, Alt8))
).
-endif.