Package-level declarations

Types

Link copied to clipboard
open class Attributes @JvmOverloads constructor(val text: Map<String, String> = mapOf(), val number: Map<String, Number>? = null, val anonymous: Boolean = false)

Extra attributes to be used for evaluating features.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
interface DynamicConfig

Interface for evaluating dynamic flags. Dynamic flags are similar to feature flags, but they don't support different variations for different keys.

Link copied to clipboard
interface EnumFeatureFlag<T : Enum<T>> : FeatureFlag<T>

A Enumeration feature flag, when evaluated returns T

Link copied to clipboard
open class Feature(val name: String)

Typed feature string.

Link copied to clipboard
sealed interface FeatureFlag<T : Any>
Link copied to clipboard

Interface for evaluating feature flags.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
interface JsonFeatureFlag<T : Any> : FeatureFlag<T>

A JSON feature flag, when evaluated returns T.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Functions

Link copied to clipboard
fun <T> JsonAdapter<T>.fromSafeJson(value: String): T?
fun <T> JsonAdapter<T>.fromSafeJson(json: String, onUnknownFields: (JsonDataException) -> Unit): T?

Attempts to use JsonAdapter.failOnUnknown and logs any issues before falling back to ignoring the unknown fields.

Link copied to clipboard
inline fun <T : Enum<T>> DynamicConfig.getEnum(feature: Feature): T
inline fun <T : Enum<T>> FeatureFlags.getEnum(feature: Feature, key: String, attributes: Attributes = Attributes()): T
Link copied to clipboard
inline fun <T> DynamicConfig.getJson(feature: Feature): T
inline fun <T> FeatureFlags.getJson(feature: Feature, key: String, attributes: Attributes = Attributes()): T
Link copied to clipboard
fun <T> JsonAdapter<T>.toSafeJson(value: T): String
fun <T> JsonAdapter<T>.toSafeJson(value: T, onUnknownFields: (JsonDataException) -> Unit): String

Attempts to use JsonAdapter.failOnUnknown and logs any issues before falling back to ignoring the unknown fields.

Link copied to clipboard
inline fun <T : Enum<T>> DynamicConfig.trackEnum(feature: Feature, executor: Executor, noinline tracker: (T) -> Unit): TrackerReference
inline fun <T : Enum<T>> FeatureFlags.trackEnum(feature: Feature, key: String, attributes: Attributes = Attributes(), executor: Executor, noinline tracker: (T) -> Unit): TrackerReference
Link copied to clipboard
inline fun <T> DynamicConfig.trackJson(feature: Feature, executor: Executor, noinline tracker: (T) -> Unit): TrackerReference
inline fun <T> FeatureFlags.trackJson(feature: Feature, key: String, attributes: Attributes = Attributes(), executor: Executor, noinline tracker: (T) -> Unit): TrackerReference