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") + } } } }