pub enum AssistantMessageEvent {
Start {
partial: Arc<AssistantMessage>,
},
TextStart {
content_index: usize,
partial: Arc<AssistantMessage>,
},
TextDelta {
content_index: usize,
delta: String,
partial: Arc<AssistantMessage>,
},
TextEnd {
content_index: usize,
content: String,
partial: Arc<AssistantMessage>,
},
ThinkingStart {
content_index: usize,
partial: Arc<AssistantMessage>,
},
ThinkingDelta {
content_index: usize,
delta: String,
partial: Arc<AssistantMessage>,
},
ThinkingEnd {
content_index: usize,
content: String,
partial: Arc<AssistantMessage>,
},
ToolCallStart {
content_index: usize,
partial: Arc<AssistantMessage>,
},
ToolCallDelta {
content_index: usize,
delta: String,
partial: Arc<AssistantMessage>,
},
ToolCallEnd {
content_index: usize,
tool_call: ToolCall,
partial: Arc<AssistantMessage>,
},
Done {
reason: DoneReason,
message: AssistantMessage,
},
Error {
reason: ErrorReason,
error: AssistantMessage,
},
}Expand description
AssistantMessageEvent tagged union, mirrors TS exactly.
Providers emit events in this order: Start is emitted once before any per-block
events, then a {Start,Delta*,End} triple per content block (text / thinking /
toolcall), then a terminal Done (carrying the final successful message) or
Error (carrying a terminal message with StopReason::Error/Aborted).
Every non-terminal event references the in-progress AssistantMessage via
partial so subscribers can render a live view. We wrap the partial in Arc
so the event is cheap to clone across broadcast subscribers.
Variants§
Start
Fields
§
partial: Arc<AssistantMessage>TextStart
TextDelta
TextEnd
ThinkingStart
ThinkingDelta
ThinkingEnd
ToolCallStart
ToolCallDelta
ToolCallEnd
Done
Error
Implementations§
Source§impl AssistantMessageEvent
impl AssistantMessageEvent
Sourcepub fn is_terminal(&self) -> bool
pub fn is_terminal(&self) -> bool
True for the two terminal variants.
Sourcepub fn partial(&self) -> &AssistantMessage
pub fn partial(&self) -> &AssistantMessage
Snapshot of the partial message for live rendering. Terminal events do not
carry a partial; returns the terminal message itself for Done/Error.
Trait Implementations§
Source§impl Clone for AssistantMessageEvent
impl Clone for AssistantMessageEvent
Source§fn clone(&self) -> AssistantMessageEvent
fn clone(&self) -> AssistantMessageEvent
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for AssistantMessageEvent
impl Debug for AssistantMessageEvent
Source§impl PartialEq for AssistantMessageEvent
impl PartialEq for AssistantMessageEvent
Source§impl Serialize for AssistantMessageEvent
impl Serialize for AssistantMessageEvent
impl StructuralPartialEq for AssistantMessageEvent
Auto Trait Implementations§
impl Freeze for AssistantMessageEvent
impl RefUnwindSafe for AssistantMessageEvent
impl Send for AssistantMessageEvent
impl Sync for AssistantMessageEvent
impl Unpin for AssistantMessageEvent
impl UnsafeUnpin for AssistantMessageEvent
impl UnwindSafe for AssistantMessageEvent
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
Mutably borrows from an owned value. Read more