Current section

Files

Jump to
open_feature_provider_flagd lib openfeature provider flagd reason.ex
Raw

lib/openfeature/provider/flagd/reason.ex

defmodule OpenFeature.Provider.Flagd.Reason do
@moduledoc """
Converts string reasons from flagd into OpenFeature reason atoms.
"""
@moduledoc since: "0.1.0"
@reasons %{
"static" => :static,
"default" => :default,
"targeting_match" => :targeting_match,
"split" => :split,
"cached" => :cached,
"disabled" => :disabled,
"unknown" => :unknown,
"stale" => :stale,
"error" => :error
}
@spec to_reason(String.t() | nil) :: OpenFeature.Types.reason()
def to_reason(nil), do: :unknown
def to_reason(reason) do
Map.get(@reasons, String.downcase(reason), :unknown)
end
end