Current section
Files
Jump to
Current section
Files
src/openfeature@client.erl
-module(openfeature@client).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([get_domain/1, get_name/1, resolve_bool_evaluation/4, resolve_string_evaluation/4, resolve_int_evaluation/4, resolve_float_evaluation/4, resolve_dynamic_evaluation/4, set_context/2]).
-export_type([client/0, client_metadata/0]).
-type client() :: {client,
openfeature@provider:feature_provider(),
client_metadata(),
openfeature@evaluation_context:evaluation_context()}.
-type client_metadata() :: {client_metadata, openfeature@domain:domain()}.
-spec get_domain(client_metadata()) -> openfeature@domain:domain().
get_domain(Metadata) ->
erlang:element(2, Metadata).
-spec get_name(client_metadata()) -> openfeature@domain:domain().
get_name(Metadata) ->
get_domain(Metadata).
-spec resolve_bool_evaluation(
client(),
binary(),
boolean(),
openfeature@evaluation_context:evaluation_context()
) -> openfeature@evaluation:resolution_details(boolean()).
resolve_bool_evaluation(Client, Flag, Default_value, Evaluation_context) ->
(erlang:element(5, erlang:element(2, Client)))(
Flag,
Default_value,
Evaluation_context
).
-spec resolve_string_evaluation(
client(),
binary(),
binary(),
openfeature@evaluation_context:evaluation_context()
) -> openfeature@evaluation:resolution_details(binary()).
resolve_string_evaluation(Client, Flag, Default_value, Evaluation_context) ->
(erlang:element(6, erlang:element(2, Client)))(
Flag,
Default_value,
Evaluation_context
).
-spec resolve_int_evaluation(
client(),
binary(),
integer(),
openfeature@evaluation_context:evaluation_context()
) -> openfeature@evaluation:resolution_details(integer()).
resolve_int_evaluation(Client, Flag, Default_value, Evaluation_context) ->
(erlang:element(7, erlang:element(2, Client)))(
Flag,
Default_value,
Evaluation_context
).
-spec resolve_float_evaluation(
client(),
binary(),
float(),
openfeature@evaluation_context:evaluation_context()
) -> openfeature@evaluation:resolution_details(float()).
resolve_float_evaluation(Client, Flag, Default_value, Evaluation_context) ->
(erlang:element(8, erlang:element(2, Client)))(
Flag,
Default_value,
Evaluation_context
).
-spec resolve_dynamic_evaluation(
client(),
binary(),
gleam@dynamic:dynamic_(),
openfeature@evaluation_context:evaluation_context()
) -> openfeature@evaluation:resolution_details(gleam@dynamic:dynamic_()).
resolve_dynamic_evaluation(Client, Flag, Default_value, Evaluation_context) ->
(erlang:element(9, erlang:element(2, Client)))(
Flag,
Default_value,
Evaluation_context
).
-spec set_context(client(), openfeature@evaluation_context:evaluation_context()) -> client().
set_context(Client, Evaluation_context) ->
{client, Provider, Metadata, _} = Client,
{client, Provider, Metadata, Evaluation_context}.