Experimental

intervalidus.Experimental$package.Experimental
object Experimental

Constructs experimental feature configurations.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Value members

Concrete methods

All experiments are enabled

All experiments are enabled

Attributes

Returns

configuration with all experimental features enabled

def allExcept(features: String*): Experimental

Only specific experimental features are disabled

Only specific experimental features are disabled

Value parameters

features

string description of experimental features to disable, e.g., "requireDisjoint"

Attributes

Returns

configuration for having all experimental features enabled except those specified

def apply(features: String*): Experimental

Only specific experimental features are enabled

Only specific experimental features are enabled

Value parameters

features

string description of experimental features to enable, e.g., "requireDisjoint"

Attributes

Returns

configuration for these experimental features enabled, and all others disabled

No experimental features are enabled

No experimental features are enabled

Attributes

Returns

configuration with no experimental features enabled

Givens

Extensions

Extensions

extension (enabledExperimental: Experimental)
def control[T](feature: String)(nonExperimentalResult: => T, experimentalResult: => T): T

If the experimental feature is enabled, return the experimental result. If not, return the non-experimental result.

If the experimental feature is enabled, return the experimental result. If not, return the non-experimental result.

Type parameters

T

result type

Value parameters

experimentalResult

result of experimental variant

feature

name of the experimental feature

nonExperimentalResult

result of non-experimental variant

Attributes

Returns

either experimental or non-experimental result, depending on what is enabled.

def enabled(feature: String): Boolean

Is this experimental feature enabled?

Is this experimental feature enabled?

Value parameters

feature

name of the experimental feature

Attributes

Returns

is the feature enabled?

def parallelCheck[T](feature: String)(nonExperimentalResult: => T, experimentalResult: => T)(onFailure: (T, T) => T): T

If the experimental feature is not enabled, return the non-experimental result. If it is enabled, compare the experimental and non-experimental results. If they match, return that result. Otherwise, return onFailure result (which would usually just throw after maybe logging some details about the mismatch).

If the experimental feature is not enabled, return the non-experimental result. If it is enabled, compare the experimental and non-experimental results. If they match, return that result. Otherwise, return onFailure result (which would usually just throw after maybe logging some details about the mismatch).

Type parameters

T

result type

Value parameters

experimentalResult

result of experimental variant

feature

name of the experimental feature

nonExperimentalResult

result of non-experimental variant

onFailure

when non-experimental and experimental do not match, this function is applied to the results (may log/throw, or choose one to return, or whatever). By default, it just throws.

Attributes

Returns

either experimental or non-experimental result, depending on parallel check results/logic.