From d1678bdc37367ea23575eb5cea6865a99edad9dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Cipriani=20Bandarra?= Date: Sun, 6 Apr 2025 08:12:58 +0100 Subject: [PATCH] Define specific error for event stream ended --- src/client.rs | 3 +++ src/error.rs | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/src/client.rs b/src/client.rs index 711db78..914612f 100644 --- a/src/client.rs +++ b/src/client.rs @@ -68,6 +68,9 @@ impl GeminiClient { let mapped = event_source.filter_map(|event| { let event = match event { Ok(event) => event, + Err(reqwest_eventsource::Error::StreamEnded) => { + return Some(Err(Error::EventSourceClosedError)) + } Err(e) => return Some(Err(e.into())), }; diff --git a/src/error.rs b/src/error.rs index ad43c29..f006510 100644 --- a/src/error.rs +++ b/src/error.rs @@ -16,6 +16,7 @@ pub enum Error { NoCandidatesError, CannotCloneRequestError(CannotCloneRequestError), EventSourceError(reqwest_eventsource::Error), + EventSourceClosedError, } impl Display for Error { @@ -37,6 +38,9 @@ impl Display for Error { Error::EventSourceError(e) => { write!(f, "EventSourrce Error: {}", e) } + Error::EventSourceClosedError => { + write!(f, "EventSource closed error") + } } } }