Unleash. Propagation. Serialization
(Unleash v5.1.2)
View Source
Module handling the (de)serialization of Unleash objects for propagation.
See Unleash.Propagation.
Summary
Types
A raw value decoded from JSON, before validation into a known shape.
Functions
Deserializes a propagated header value into {:ok, context} or {:error, _}.
Like deserialize_context/1, but raises on failure.
Deserializes a propagated header value into {:ok, impressions} or {:error, _}.
Like deserialize_impressions/1, but raises on failure.
Deserializes a propagated header value into {:ok, overrides} or {:error, _}.
Like deserialize_overrides/1, but raises on failure.
Serializes context for further propagation to downstream services.
Serializes impressions for returning to upstream callers.
Serializes overrides for further propagation to downstream services.
Types
@type json_value() :: term()
A raw value decoded from JSON, before validation into a known shape.
Functions
@spec deserialize_context(binary()) :: {:ok, Unleash.context()} | {:error, Unleash.Propagation.Serialization.ContextDeserializationError.t()}
Deserializes a propagated header value into {:ok, context} or {:error, _}.
@spec deserialize_context!(binary()) :: Unleash.context()
Like deserialize_context/1, but raises on failure.
@spec deserialize_impressions(binary()) :: {:ok, [Unleash.impression()]} | {:error, Unleash.Propagation.Serialization.ImpressionsDeserializationError.t()}
Deserializes a propagated header value into {:ok, impressions} or {:error, _}.
@spec deserialize_impressions!(binary()) :: [Unleash.impression()]
Like deserialize_impressions/1, but raises on failure.
@spec deserialize_overrides(binary()) :: {:ok, Unleash.context()} | {:error, Unleash.Propagation.Serialization.OverridesDeserializationError.t()}
Deserializes a propagated header value into {:ok, overrides} or {:error, _}.
@spec deserialize_overrides!(binary()) :: Unleash.overrides()
Like deserialize_overrides/1, but raises on failure.
@spec serialize_context!(Unleash.context()) :: String.t()
Serializes context for further propagation to downstream services.
Note that only propagation-friendly context fields are serialized.
@spec serialize_impressions!([Unleash.impression()]) :: String.t()
Serializes impressions for returning to upstream callers.
@spec serialize_overrides!(Unleash.overrides()) :: String.t()
Serializes overrides for further propagation to downstream services.