-module(openfeature@client). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([get_domain/1, get_name/1, get_bool_details/4, get_string_details/4, get_int_details/4, get_float_details/4, get_dynamic_details/4, get_bool_value/4, get_string_value/4, get_int_value/4, get_float_value/4, get_dynamic_value/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 get_bool_details( client(), binary(), boolean(), openfeature@evaluation_context:evaluation_context() ) -> openfeature@evaluation:resolution_details(boolean()). get_bool_details(Client, Flag, Default_value, Evaluation_context) -> (erlang:element(5, erlang:element(2, Client)))( Flag, Default_value, Evaluation_context ). -spec get_string_details( client(), binary(), binary(), openfeature@evaluation_context:evaluation_context() ) -> openfeature@evaluation:resolution_details(binary()). get_string_details(Client, Flag, Default_value, Evaluation_context) -> (erlang:element(6, erlang:element(2, Client)))( Flag, Default_value, Evaluation_context ). -spec get_int_details( client(), binary(), integer(), openfeature@evaluation_context:evaluation_context() ) -> openfeature@evaluation:resolution_details(integer()). get_int_details(Client, Flag, Default_value, Evaluation_context) -> (erlang:element(7, erlang:element(2, Client)))( Flag, Default_value, Evaluation_context ). -spec get_float_details( client(), binary(), float(), openfeature@evaluation_context:evaluation_context() ) -> openfeature@evaluation:resolution_details(float()). get_float_details(Client, Flag, Default_value, Evaluation_context) -> (erlang:element(8, erlang:element(2, Client)))( Flag, Default_value, Evaluation_context ). -spec get_dynamic_details( client(), binary(), gleam@dynamic:dynamic_(), openfeature@evaluation_context:evaluation_context() ) -> openfeature@evaluation:resolution_details(gleam@dynamic:dynamic_()). get_dynamic_details(Client, Flag, Default_value, Evaluation_context) -> (erlang:element(9, erlang:element(2, Client)))( Flag, Default_value, Evaluation_context ). -spec get_value_from_details(openfeature@evaluation:resolution_details(HNB)) -> HNB. get_value_from_details(Details) -> erlang:element(2, Details). -spec get_bool_value( client(), binary(), boolean(), openfeature@evaluation_context:evaluation_context() ) -> boolean(). get_bool_value(Client, Flag, Default_value, Evaluation_context) -> _pipe = get_bool_details(Client, Flag, Default_value, Evaluation_context), get_value_from_details(_pipe). -spec get_string_value( client(), binary(), binary(), openfeature@evaluation_context:evaluation_context() ) -> binary(). get_string_value(Client, Flag, Default_value, Evaluation_context) -> _pipe = get_string_details(Client, Flag, Default_value, Evaluation_context), get_value_from_details(_pipe). -spec get_int_value( client(), binary(), integer(), openfeature@evaluation_context:evaluation_context() ) -> integer(). get_int_value(Client, Flag, Default_value, Evaluation_context) -> _pipe = get_int_details(Client, Flag, Default_value, Evaluation_context), get_value_from_details(_pipe). -spec get_float_value( client(), binary(), float(), openfeature@evaluation_context:evaluation_context() ) -> float(). get_float_value(Client, Flag, Default_value, Evaluation_context) -> _pipe = get_float_details(Client, Flag, Default_value, Evaluation_context), get_value_from_details(_pipe). -spec get_dynamic_value( client(), binary(), gleam@dynamic:dynamic_(), openfeature@evaluation_context:evaluation_context() ) -> gleam@dynamic:dynamic_(). get_dynamic_value(Client, Flag, Default_value, Evaluation_context) -> _pipe = get_dynamic_details(Client, Flag, Default_value, Evaluation_context), get_value_from_details(_pipe). -spec set_context(client(), openfeature@evaluation_context:evaluation_context()) -> client(). set_context(Client, Evaluation_context) -> {client, Provider, Metadata, _} = Client, {client, Provider, Metadata, Evaluation_context}.