diff --git a/src/ai_response.rs b/src/ai_response.rs index a3774fd..c5b1d8b 100644 --- a/src/ai_response.rs +++ b/src/ai_response.rs @@ -19,3 +19,41 @@ pub struct AiConversation { pub temperature: f32, pub stream: bool, } + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct StreamEvent { + #[serde(rename = "type")] + pub event_type: String, + pub content: Option, + pub error: Option, + pub message_id: Option, +} + +impl StreamEvent { + pub fn content(content: String) -> Self { + Self { + event_type: "content".to_string(), + content: Some(content), + error: None, + message_id: None, + } + } + + pub fn error(error: String) -> Self { + Self { + event_type: "error".to_string(), + content: None, + error: Some(error), + message_id: None, + } + } + + pub fn done(message_id: String) -> Self { + Self { + event_type: "done".to_string(), + content: None, + error: None, + message_id: Some(message_id), + } + } +}