lib/momento/config/configuration.ex

defmodule Momento.Config.Configuration do
  @moduledoc """
  Configuration for Momento CacheClient
  """
  @enforce_keys[:transport_strategy]
  defstruct [:transport_strategy]

  @opaque t() :: %__MODULE__{
            transport_strategy: Momento.Config.Transport.TransportStrategy.t()
          }

  @spec with_transport_strategy(
          config :: Momento.Config.Configuration.t(),
          transport_strategy :: Momento.Config.Transport.TransportStrategy.t()
        ) :: Momento.Config.Configuration.t()
  def with_transport_strategy(config, transport_strategy) do
    %{config | transport_strategy: transport_strategy}
  end
end