#[non_exhaustive]pub enum StreamPart {
Show 21 variants
StreamStart {
warnings: Vec<Warning>,
},
ResponseMetadata {
id: Option<String>,
timestamp: Option<DateTime<Utc>>,
model_id: Option<ModelId>,
},
TextStart {
id: PartId,
provider_metadata: Option<ProviderMetadata>,
},
TextDelta {
id: PartId,
delta: String,
provider_metadata: Option<ProviderMetadata>,
},
TextEnd {
id: PartId,
provider_metadata: Option<ProviderMetadata>,
},
ReasoningStart {
id: PartId,
provider_metadata: Option<ProviderMetadata>,
},
ReasoningDelta {
id: PartId,
delta: String,
provider_metadata: Option<ProviderMetadata>,
},
ReasoningEnd {
id: PartId,
provider_metadata: Option<ProviderMetadata>,
},
ToolInputStart {
id: ToolCallId,
tool_name: ToolName,
provider_executed: bool,
dynamic: bool,
title: Option<String>,
provider_metadata: Option<ProviderMetadata>,
},
ToolInputDelta {
id: ToolCallId,
delta: String,
provider_metadata: Option<ProviderMetadata>,
},
ToolInputEnd {
id: ToolCallId,
provider_metadata: Option<ProviderMetadata>,
},
ToolCall(ToolCall),
ToolResult(ProviderToolResult),
ToolApprovalRequest {
approval_id: ApprovalId,
tool_call_id: ToolCallId,
provider_metadata: Option<ProviderMetadata>,
},
File {
data: FileData,
media_type: MediaType,
filename: Option<String>,
provider_metadata: Option<ProviderMetadata>,
},
ReasoningFile {
data: FileData,
media_type: MediaType,
provider_metadata: Option<ProviderMetadata>,
},
Source(Source),
Custom {
kind: CustomKind,
provider_metadata: Option<ProviderMetadata>,
},
Finish {
finish_reason: FinishReason,
usage: Usage,
provider_metadata: Option<ProviderMetadata>,
},
Raw {
raw_value: JsonValue,
},
Error {
error: StreamError,
},
}Expand description
A part of a language model stream, tagged by type.
Ordering contract: a stream starts with StreamStart and ends with
Finish (or Error); TextDelta parts appear between TextStart and
TextEnd with the same id; tool input appears as ToolInputStart, zero
or more ToolInputDelta, ToolInputEnd, then ToolCall.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
StreamStart
First part of every stream.
ResponseMetadata
Response metadata, emitted once known.
Fields
TextStart
Start of a text part.
TextDelta
Text increment.
Fields
provider_metadata: Option<ProviderMetadata>Provider-specific metadata.
TextEnd
End of a text part.
ReasoningStart
Start of a reasoning part.
ReasoningDelta
Reasoning increment.
Fields
provider_metadata: Option<ProviderMetadata>Provider-specific metadata.
ReasoningEnd
End of a reasoning part.
ToolInputStart
Start of streamed tool input.
Fields
id: ToolCallIdTool call id.
provider_metadata: Option<ProviderMetadata>Provider-specific metadata.
ToolInputDelta
Tool input increment (raw JSON text).
Fields
id: ToolCallIdTool call id.
provider_metadata: Option<ProviderMetadata>Provider-specific metadata.
ToolInputEnd
End of streamed tool input.
Fields
id: ToolCallIdTool call id.
provider_metadata: Option<ProviderMetadata>Provider-specific metadata.
ToolCall(ToolCall)
A complete tool call.
ToolResult(ProviderToolResult)
A provider-executed tool result.
ToolApprovalRequest
The provider asks for approval before executing a tool call.
Fields
approval_id: ApprovalIdIdentifier of the approval request.
tool_call_id: ToolCallIdIdentifier of the tool call awaiting approval.
provider_metadata: Option<ProviderMetadata>Provider-specific metadata.
File
A generated file.
Fields
provider_metadata: Option<ProviderMetadata>Provider-specific metadata.
ReasoningFile
A reasoning artifact stored as a file.
Fields
provider_metadata: Option<ProviderMetadata>Provider-specific metadata.
Source(Source)
A citation source.
Custom
Provider-specific content.
Fields
kind: CustomKindKind of the content.
provider_metadata: Option<ProviderMetadata>Provider-specific metadata carrying the payload.
Finish
Last part of a successful stream.
Fields
finish_reason: FinishReasonWhy generation stopped.
provider_metadata: Option<ProviderMetadata>Provider-specific metadata.
Raw
A raw provider chunk; only emitted when include_raw_chunks is set.
Error
An error; the stream ends after this part.
Fields
error: StreamErrorThe error.
Implementations§
Source§impl StreamPart
impl StreamPart
Sourcepub fn stream_start() -> Self
pub fn stream_start() -> Self
Creates a StreamStart without warnings.
Sourcepub fn text_delta(id: impl Into<PartId>, delta: impl Into<String>) -> Self
pub fn text_delta(id: impl Into<PartId>, delta: impl Into<String>) -> Self
Creates a TextDelta without metadata.
Sourcepub fn finish(finish_reason: FinishReason, usage: Usage) -> Self
pub fn finish(finish_reason: FinishReason, usage: Usage) -> Self
Creates a Finish without metadata.
Sourcepub fn error(error: &ProviderError) -> Self
pub fn error(error: &ProviderError) -> Self
Creates an Error part from a provider error.
Trait Implementations§
Source§impl Clone for StreamPart
impl Clone for StreamPart
Source§fn clone(&self) -> StreamPart
fn clone(&self) -> StreamPart
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more