lib/vnext_genai/records/node.ex

# ===============================================================================
# Copyright (c) 2025, Noizu Labs, Inc.
# ===============================================================================
defmodule GenAI.Records.Node do
  @moduledoc """
  Records used by for preparing/processing nodes.
  """

  require Record

  @typedoc """
  Indicate node to process next.
  """
  @type process_next :: record(:process_next, element: any, session: any)
  Record.defrecord(:process_next, element: nil, session: nil)

  @typedoc """
  Indicate no further nodes to process.
  """
  @type process_end :: record(:process_end, element: any, session: any)
  Record.defrecord(:process_end, element: nil, session: nil)

  @typedoc """
  Yield processing for.
  """
  @type process_yield :: record(:process_yield, element: any, yield_for: any, session: any)
  Record.defrecord(:process_yield, element: nil, yield_for: nil, session: nil)

  @typedoc """
  Processing error
  """
  @type process_error :: record(:process_error, element: any, error: any, session: any)
  Record.defrecord(:process_error, element: nil, error: nil, session: nil)
end