pub struct Turn {
pub role: Role,
pub timestamp: Timestamp,
pub model: Option<String>,
pub effort: Option<String>,
pub content: Content,
pub usage: Option<Usage>,
pub is_sidechain: bool,
pub is_meta: bool,
}Expand description
A conversation turn, with the role lifted out of the JSONL’s type tag.
Fields§
§role: Role§timestamp: Timestamp§model: Option<String>§effort: Option<String>How hard the model was asked to think, where the harness records it: a refinement of the model, not a separate fact about the turn.
content: Content§usage: Option<Usage>What the turn cost, for the assistant turns that report it. A user turn has none, and transcripts written before the harness recorded usage carry none either.
is_sidechain: boolTrue for turns belonging to a subagent running inside this session.
is_meta: boolTrue for turns the harness injected rather than the user typing them.
Implementations§
Source§impl Turn
impl Turn
Sourcepub fn is_tool_response(&self) -> bool
pub fn is_tool_response(&self) -> bool
True when a user-role turn carries only tool results: the harness
returning tool output, not the user typing. These read as a
continuation of the assistant’s turn, not a message of their own.
Sourcepub fn is_clear_command(&self) -> bool
pub fn is_clear_command(&self) -> bool
True when this turn is the /clear slash command, which resets the
context: a session boundary the harness records as a user turn, with
no conversation of its own worth showing.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Turn
impl RefUnwindSafe for Turn
impl Send for Turn
impl Sync for Turn
impl Unpin for Turn
impl UnsafeUnpin for Turn
impl UnwindSafe for Turn
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more