Sha256: de0afb53eba0ded5fa69c86869c82f9db5e5dc4e65f3054c505885c9e6af8978

Contents?: true

Size: 1.47 KB

Versions: 6

Compression:

Stored size: 1.47 KB

Contents

# typed: strict
# frozen_string_literal: true

module OpenFeature
  # Interface that providers must implement.
  module Provider
    extend T::Sig
    extend T::Helpers
    interface!

    sig { abstract.returns(ProviderMetadata) }
    def metadata; end

    sig { abstract.returns(T::Array[Hook]) }
    def hooks; end

    sig do
      abstract
        .params(
          flag_key: String,
          default_value: T::Boolean,
          context: T.nilable(EvaluationContext)
        )
        .returns(ResolutionDetails[T::Boolean])
    end
    def resolve_boolean_value(flag_key:, default_value:, context: nil); end

    sig do
      abstract
        .params(
          flag_key: String,
          default_value: String,
          context: T.nilable(EvaluationContext)
        )
        .returns(ResolutionDetails[String])
    end
    def resolve_string_value(flag_key:, default_value:, context: nil); end

    sig do
      abstract
        .params(
          flag_key: String,
          default_value: Numeric,
          context: T.nilable(EvaluationContext)
        )
        .returns(ResolutionDetails[Numeric])
    end
    def resolve_number_value(flag_key:, default_value:, context: nil); end

    sig do
      abstract
        .params(
          flag_key: String,
          default_value: Structure,
          context: T.nilable(EvaluationContext)
        )
        .returns(ResolutionDetails[Structure])
    end
    def resolve_structure_value(flag_key:, default_value:, context: nil); end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
openfeature-sdk-sorbet-0.2.0.2 lib/open_feature/provider.rb
openfeature-sdk-sorbet-0.2.1 lib/open_feature/provider.rb
openfeature-sdk-sorbet-0.2.0.1 lib/open_feature/provider.rb
openfeature-sdk-sorbet-0.2.0 lib/open_feature/provider.rb
openfeature-sdk-sorbet-0.1.2 lib/open_feature/provider.rb
openfeature-sdk-sorbet-0.1.1 lib/open_feature/provider.rb