Current section

Files

Jump to
launchdarkly_server_sdk src ldclient_eval_reason.erl
Raw

src/ldclient_eval_reason.erl

%%-------------------------------------------------------------------
%% @doc Reason
%% @private
%% @end
%%-------------------------------------------------------------------
-module(ldclient_eval_reason).
%% API
-export([format/1]).
-spec format(ldclient_eval:reason()) -> map().
format(target_match) -> #{<<"kind">> => <<"TARGET_MATCH">>};
format({rule_match, RuleIndex, RuleId}) -> #{kind => <<"RULE_MATCH">>, ruleIndex => RuleIndex, ruleId => RuleId};
format({rule_match, RuleIndex, RuleId, in_experiment}) -> #{kind => <<"RULE_MATCH">>, ruleIndex => RuleIndex, ruleId => RuleId, inExperiment => true};
format({prerequisite_failed, [PrereqKey|_]}) -> #{kind => <<"PREREQUISITE_FAILED">>, prerequisiteKey => PrereqKey};
format({error, client_not_ready}) -> #{kind => <<"ERROR">>, errorKind => <<"CLIENT_NOT_READY">>};
format({error, flag_not_found}) -> #{kind => <<"ERROR">>, errorKind => <<"FLAG_NOT_FOUND">>};
format({error, malformed_flag}) -> #{kind => <<"ERROR">>, errorKind => <<"MALFORMED_FLAG">>};
format({error, user_not_specified}) -> #{kind => <<"ERROR">>, errorKind => <<"USER_NOT_SPECIFIED">>};
format({error, wrong_type}) -> #{kind => <<"ERROR">>, errorKind => <<"WRONG_TYPE">>};
format({error, exception}) -> #{kind => <<"ERROR">>, errorKind => <<"EXCEPTION">>};
format(fallthrough) -> #{kind => <<"FALLTHROUGH">>};
format({fallthrough, in_experiment}) -> #{kind => <<"FALLTHROUGH">>, inExperiment => true};
format(off) -> #{kind => <<"OFF">>}.