summaryrefslogtreecommitdiffstats
path: root/src/client/stream.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/stream.rs')
-rw-r--r--src/client/stream.rs31
1 files changed, 15 insertions, 16 deletions
diff --git a/src/client/stream.rs b/src/client/stream.rs
index 9913f63..907efee 100644
--- a/src/client/stream.rs
+++ b/src/client/stream.rs
@@ -34,19 +34,25 @@ impl SseHandler {
let ret = self
.sender
.send(SseEvent::Text(text.to_string()))
- .with_context(|| "Failed to send ReplyEvent:Text");
- self.safe_ret(ret)?;
+ .with_context(|| "Failed to send SseEvent:Text");
+ if let Err(err) = ret {
+ if self.abort.aborted() {
+ return Ok(());
+ }
+ return Err(err);
+ }
Ok(())
}
- pub fn done(&mut self) -> Result<()> {
+ pub fn done(&mut self) {
// debug!("HandleDone");
- let ret = self
- .sender
- .send(SseEvent::Done)
- .with_context(|| "Failed to send ReplyEvent::Done");
- self.safe_ret(ret)?;
- Ok(())
+ let ret = self.sender.send(SseEvent::Done);
+ if ret.is_err() {
+ if self.abort.aborted() {
+ return;
+ }
+ warn!("Failed to send SseEvent:Done");
+ }
}
pub fn tool_call(&mut self, call: ToolCall) -> Result<()> {
@@ -65,13 +71,6 @@ impl SseHandler {
} = self;
(buffer, tool_calls)
}
-
- fn safe_ret(&self, ret: Result<()>) -> Result<()> {
- if self.abort.aborted() {
- return Ok(());
- }
- ret
- }
}
#[derive(Debug)]