lib/xandra/set_keyspace.ex

defmodule Xandra.SetKeyspace do
  @moduledoc """
  A struct that represents the result of a `USE` query.

  These are the public fields of this struct:

    * `:keyspace` - the keyspace (as a binary) that was set through the executed
      `USE` query.

    * `:tracing_id` - the tracing ID (as a UUID binary) if tracing was enabled,
      or `nil` if no tracing was enabled. See the "Tracing" section in `Xandra.execute/4`.

    * `:custom_payload` - the *custom payload* sent by the server, if present.
      If the server doesn't send a custom payload, this field is `nil`. Otherwise,
      it's of type `t:Xandra.custom_payload/0`. See the "Custom payloads" section
      in the documentation for the `Xandra` module.

  """

  defstruct [:keyspace, :tracing_id, :custom_payload]

  @typedoc """
  The type for a "set keyspace" result.
  """
  @type t :: %__MODULE__{
          keyspace: String.t(),
          tracing_id: binary() | nil,
          custom_payload: Xandra.custom_payload() | nil
        }
end