Skip to main content

lib/pi/agent/result.ex

defmodule Pi.Agent.Result do
  @moduledoc "Result of a Pi agent run."

  alias Pi.Session.State

  @enforce_keys [:session]
  defstruct [:session, :result, :error]

  @type t :: %__MODULE__{session: State.t(), result: term(), error: term()}

  def ok(%State{} = session, result), do: %__MODULE__{session: session, result: result}
  def error(%State{} = session, error), do: %__MODULE__{session: session, error: error}
end