#[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 moreAuto Trait Implementations§
impl Freeze for ProviderEvent
impl RefUnwindSafe for ProviderEvent
impl Send for ProviderEvent
impl Sync for ProviderEvent
impl Unpin for ProviderEvent
impl UnsafeUnpin for ProviderEvent
impl UnwindSafe for ProviderEvent
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
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,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.