pub struct TurnWire {
pub key: Option<String>,
pub messages: Vec<Value>,
}Expand description
One turn, as a page carries it: the key the server named it by, and the messages it ran as.
The messages, not a drawing of them. How a run of tool calls groups
inside a turn is a drawing decision, so it belongs to whoever draws; what
crosses is the turn’s own boundary, and that stays here because the paging
contract is built on it - more asks for turns, and a page above the
window’s floor
cuts on them rather than leaving a client to stitch half a turn to half.
Below that floor a page can carry a stretch inside a turn, which is what a running turn’s older rows are: a session whose life is one unended turn has no boundary to cut on, and its rows reach a late-attaching view only in runs. What a client is owed there is the pair: a page never opens on a tool result without the call that produced it.
Fields§
§key: Option<String>None when nothing named the turn: the key comes from a Result
frame, and a conversation read from a transcript carries none.
messages: Vec<Value>The frames this turn ran as, which is the same shape the session
record’s conversation carries.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for TurnWire
impl<'de> Deserialize<'de> for TurnWire
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for TurnWire
impl RefUnwindSafe for TurnWire
impl Send for TurnWire
impl Sync for TurnWire
impl Unpin for TurnWire
impl UnsafeUnpin for TurnWire
impl UnwindSafe for TurnWire
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
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