pub struct ThinkingBlock {
pub text: String,
pub signature: String,
}Expand description
One Anthropic-style extended-thinking content block. Anthropic’s API
returns thinking output as a sequence of {type:"thinking", thinking, signature} blocks; the signature is a server-issued cryptographic
token that we MUST echo back unchanged on every subsequent assistant
turn or the API rejects the request with 400 The content[].thinking in the thinking mode must be passed back to the API. Per Anthropic
docs, thinking blocks must also appear before text/tool_use blocks
inside the assistant message — provider/claude.rs::format_messages
enforces that ordering.
Fields§
§text: StringThe thinking text streamed via thinking_delta events.
signature: StringServer-issued signature received via signature_delta. Required
for round-trip; an empty string means we never received one (older
session files, non-Anthropic provider) — emit anyway, the upstream
either accepts empty or rejects only when thinking + tool_use is
active (in which case we already had a signature).
Trait Implementations§
Source§impl Clone for ThinkingBlock
impl Clone for ThinkingBlock
Source§fn clone(&self) -> ThinkingBlock
fn clone(&self) -> ThinkingBlock
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ThinkingBlock
impl Debug for ThinkingBlock
Source§impl<'de> Deserialize<'de> for ThinkingBlock
impl<'de> Deserialize<'de> for ThinkingBlock
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>,
Source§impl PartialEq for ThinkingBlock
impl PartialEq for ThinkingBlock
Source§fn eq(&self, other: &ThinkingBlock) -> bool
fn eq(&self, other: &ThinkingBlock) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for ThinkingBlock
impl Serialize for ThinkingBlock
impl StructuralPartialEq for ThinkingBlock
Auto Trait Implementations§
impl Freeze for ThinkingBlock
impl RefUnwindSafe for ThinkingBlock
impl Send for ThinkingBlock
impl Sync for ThinkingBlock
impl Unpin for ThinkingBlock
impl UnsafeUnpin for ThinkingBlock
impl UnwindSafe for ThinkingBlock
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> 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