-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}.