GenAgentEnsemble.Queue (gen_agent_ensemble v0.2.0)

Copy Markdown View Source

FIFO helper for {token, prompt} pairs awaiting dispatch.

Thin wrapper over :queue with the shape every queueing strategy reaches for: enqueue when busy, pop when going idle.

Strategies using this helper typically keep a queue: Queue.new() field and call enqueue/3 in handle_tell/ask when they can't dispatch immediately, then pop/1 in handle_response (or similar) when they free up.

Summary

Types

t()

@opaque t()

Functions

enqueue(queue, token, prompt)

@spec enqueue(t(), String.t(), String.t()) :: t()

len(queue)

@spec len(t()) :: non_neg_integer()

new()

@spec new() :: t()

pop(queue)

@spec pop(t()) :: {:ok, {String.t(), String.t()}, t()} | :empty

Pop the next {token, prompt} pair.

Returns {:ok, {token, prompt}, rest} if the queue was non-empty, :empty if it was empty.