Packages

ConfigCat SDK for Elixir. Feature Flags created by developers for developers with ❤️. ConfigCat lets you manage feature flags across frontend, backend, mobile, and desktop apps without (re)deploying code. % rollouts, user targeting, segmentation. Feature toggle SDKs for all main languages.

Current section

Files

Jump to
configcat lib config_cat config condition.ex
Raw

lib/config_cat/config/condition.ex

defmodule ConfigCat.Config.Condition do
@moduledoc false
alias ConfigCat.Config.PrerequisiteFlagCondition
alias ConfigCat.Config.Segment
alias ConfigCat.Config.SegmentCondition
alias ConfigCat.Config.UserCondition
@type t :: %{String.t() => term()}
@prerequisite_flag_condition "p"
@segment_condition "s"
@user_condition "u"
@spec prerequisite_flag_condition(t()) :: PrerequisiteFlagCondition.t()
def prerequisite_flag_condition(condition) do
Map.get(condition, @prerequisite_flag_condition)
end
@spec segment_condition(t()) :: SegmentCondition.t() | nil
def segment_condition(condition) do
Map.get(condition, @segment_condition)
end
@spec user_condition(t()) :: UserCondition.t() | nil
def user_condition(condition) do
Map.get(condition, @user_condition)
end
@spec inline_segments(t(), [Segment.t()]) :: t()
def inline_segments(condition, segments) do
Map.update(condition, @segment_condition, nil, &SegmentCondition.inline_segment(&1, segments))
end
end