#[non_exhaustive]pub enum ProviderEvent {
Show 15 variants
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,
tool_call_id: Option<String>,
tool_name: Option<String>,
partial: Arc<AssistantMessage>,
},
ToolCallDelta {
content_index: usize,
delta: String,
partial: Arc<AssistantMessage>,
},
ToolCallEnd {
content_index: usize,
tool_call: ToolCall,
partial: Arc<AssistantMessage>,
},
ImageStart {
content_index: usize,
mime_type: String,
partial: Arc<AssistantMessage>,
},
ImageDelta {
content_index: usize,
delta: String,
partial: Arc<AssistantMessage>,
},
ImageEnd {
content_index: usize,
data: String,
mime_type: String,
partial: Arc<AssistantMessage>,
},
Done {
reason: StopReason,
message: AssistantMessage,
},
Error {
reason: StopReason,
error: AssistantMessage,
},
}Expand description
Note: We use crate::AssistantMessage directly to avoid type alias conflicts
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Start
Stream started with partial assistant message.
Fields
partial: Arc<AssistantMessage>Partial assistant message state.
TextStart
Text content block started.
Fields
partial: Arc<AssistantMessage>Partial assistant message state.
TextDelta
Incremental text delta received.
Fields
partial: Arc<AssistantMessage>Partial assistant message state.
TextEnd
Text content block finished.
Fields
partial: Arc<AssistantMessage>Partial assistant message state.
ThinkingStart
Thinking content block started.
Fields
partial: Arc<AssistantMessage>Partial assistant message state.
ThinkingDelta
Incremental thinking delta received.
Fields
partial: Arc<AssistantMessage>Partial assistant message state.
ThinkingEnd
Thinking content block finished.
Fields
partial: Arc<AssistantMessage>Partial assistant message state.
ToolCallStart
Tool call block started.
Fields
tool_call_id: Option<String>The tool call ID from the provider, if available at start time.
Providers that only surface the ID later (in deltas/end) leave this None.
partial: Arc<AssistantMessage>Partial assistant message state.
ToolCallDelta
Tool call delta received (partial JSON arguments).
Fields
partial: Arc<AssistantMessage>Partial assistant message state.
ToolCallEnd
Tool call block finished.
Fields
partial: Arc<AssistantMessage>Partial assistant message state.
ImageStart
Image content block started (incremental image streaming, e.g. Gemini).
Mirrors omp’s AssistantMessageEvent::image_start. Without this event
family, providers that stream images incrementally (Gemini) cannot
represent image output — see P0-D in the omp-realignment design.
Fields
partial: Arc<AssistantMessage>Partial assistant message state.
ImageDelta
Incremental image delta received (base64-encoded chunk).
Fields
partial: Arc<AssistantMessage>Partial assistant message state.
ImageEnd
Image content block finished.
Fields
partial: Arc<AssistantMessage>Partial assistant message state.
Done
Stream completed successfully.
Fields
reason: StopReasonWhy the model stopped generating.
message: AssistantMessageThe final assistant message.
Error
Stream ended with an error.
Fields
reason: StopReasonThe stop reason at time of error.
error: AssistantMessageError details in assistant message form.
Implementations§
Trait Implementations§
Source§impl Clone for ProviderEvent
impl Clone for ProviderEvent
Source§fn clone(&self) -> ProviderEvent
fn clone(&self) -> ProviderEvent
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more