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, _}.

Deserializes a propagated header value into {:ok, impressions} or {:error, _}.

Deserializes a propagated header value into {:ok, overrides} or {:error, _}.

Serializes context for further propagation to downstream services.

Serializes impressions for returning to upstream callers.

Serializes overrides for further propagation to downstream services.

Types

json_value()

@type json_value() :: term()

A raw value decoded from JSON, before validation into a known shape.

Functions

deserialize_context(serialized_context)

@spec deserialize_context(binary()) ::
  {:ok, Unleash.context()}
  | {:error, Unleash.Propagation.Serialization.ContextDeserializationError.t()}

Deserializes a propagated header value into {:ok, context} or {:error, _}.

deserialize_context!(serialized_context)

@spec deserialize_context!(binary()) :: Unleash.context()

Like deserialize_context/1, but raises on failure.

deserialize_impressions(serialized_impressions)

@spec deserialize_impressions(binary()) ::
  {:ok, [Unleash.impression()]}
  | {:error,
     Unleash.Propagation.Serialization.ImpressionsDeserializationError.t()}

Deserializes a propagated header value into {:ok, impressions} or {:error, _}.

deserialize_impressions!(serialized_impressions)

@spec deserialize_impressions!(binary()) :: [Unleash.impression()]

Like deserialize_impressions/1, but raises on failure.

deserialize_overrides(serialized_overrides)

@spec deserialize_overrides(binary()) ::
  {:ok, Unleash.context()}
  | {:error,
     Unleash.Propagation.Serialization.OverridesDeserializationError.t()}

Deserializes a propagated header value into {:ok, overrides} or {:error, _}.

deserialize_overrides!(serialized_overrides)

@spec deserialize_overrides!(binary()) :: Unleash.overrides()

Like deserialize_overrides/1, but raises on failure.

serialize_context!(context)

@spec serialize_context!(Unleash.context()) :: String.t()

Serializes context for further propagation to downstream services.

Note that only propagation-friendly context fields are serialized.

serialize_impressions!(impressions)

@spec serialize_impressions!([Unleash.impression()]) :: String.t()

Serializes impressions for returning to upstream callers.

serialize_overrides!(overrides)

@spec serialize_overrides!(Unleash.overrides()) :: String.t()

Serializes overrides for further propagation to downstream services.