Skip to main content

Turn

Struct Turn 

Source
pub struct Turn<'a> { /* private fields */ }
Available on crate feature async-client only.
Expand description

One turn of the conversation: everything between a prompt and the agent going idle again.

Steps stream out of Turn::next_step. While it is being polled, the turn also answers whatever the harness asks of the client — so a tool handler runs inside next_step, not on a background task. Tool calls are therefore executed one at a time, in arrival order.

Implementations§

Source§

impl Turn<'_>

Source

pub async fn next_step(&mut self) -> Result<Option<Step>>

The next step, or None once the agent has gone idle.

If the turn failed, the error surfaces after the last step, so whatever the agent said before failing is still delivered.

Source

pub async fn collect_text(&mut self) -> Result<String>

Drains the turn and returns everything the agent said to the user.

Source

pub fn is_finished(&self) -> bool

True once the agent has gone idle.

Trait Implementations§

Source§

impl<'a> Debug for Turn<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> !RefUnwindSafe for Turn<'a>

§

impl<'a> !UnwindSafe for Turn<'a>

§

impl<'a> Freeze for Turn<'a>

§

impl<'a> Send for Turn<'a>

§

impl<'a> Sync for Turn<'a>

§

impl<'a> Unpin for Turn<'a>

§

impl<'a> UnsafeUnpin for Turn<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V