pub enum StreamEvent {
MessageStart {
message: MessageStart,
},
ContentBlockStart {
index: u32,
content_block: ContentBlockStart,
},
ContentBlockDelta {
index: u32,
delta: ContentBlockDelta,
},
ContentBlockStop {
index: u32,
},
MessageDelta {
delta: MessageDelta,
usage: Usage,
},
MessageStop,
Ping,
}Expand description
Streaming events from the Anthropic API.
When using streaming mode, the API returns a series of events that incrementally build up the complete response.
Variants§
MessageStart
Indicates the start of a message
Fields
§
message: MessageStartContentBlockStart
Indicates the start of a content block
ContentBlockDelta
Contains a delta (incremental update) to a content block
ContentBlockStop
Indicates the end of a content block
MessageDelta
Contains final message information like stop reason
MessageStop
Indicates the end of the message
Ping
A keepalive event that can be ignored
Implementations§
Source§impl StreamEvent
impl StreamEvent
Sourcepub async fn create_stream(
request: MessagesRequest,
) -> Result<Receiver<Self>, CannotCloneRequestError>
pub async fn create_stream( request: MessagesRequest, ) -> Result<Receiver<Self>, CannotCloneRequestError>
Creates a new streaming message request and returns a channel of events.
This method sends a request to the Messages API in streaming mode and returns a channel that will receive the streaming events.
§Example
let credentials = Credentials::from_env();
let mut request = MessagesRequest {
model: "claude-3-7-sonnet-20250219".to_string(),
messages: vec![Message {
role: MessageRole::User,
content: MessageContent::Text("Hello!".to_string()),
}],
max_tokens: 100,
credentials: Some(credentials),
metadata: None,
stop_sequences: None,
stream: Some(true),
system: None,
temperature: None,
tool_choice: None,
tools: None,
top_k: None,
top_p: None,
};
let mut stream = StreamEvent::create_stream(request).await?;
while let Some(event) = stream.recv().await {
// Process streaming events
println!("{:?}", event);
}Trait Implementations§
Source§impl Clone for StreamEvent
impl Clone for StreamEvent
Source§fn clone(&self) -> StreamEvent
fn clone(&self) -> StreamEvent
Returns a copy of the value. Read more
1.0.0 · 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 StreamEvent
impl Debug for StreamEvent
Source§impl<'de> Deserialize<'de> for StreamEvent
impl<'de> Deserialize<'de> for StreamEvent
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>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for StreamEvent
impl PartialEq for StreamEvent
impl Eq for StreamEvent
impl StructuralPartialEq for StreamEvent
Auto Trait Implementations§
impl Freeze for StreamEvent
impl RefUnwindSafe for StreamEvent
impl Send for StreamEvent
impl Sync for StreamEvent
impl Unpin for StreamEvent
impl UnwindSafe for StreamEvent
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.