From 4d4a100fe6fcde7ca3afcf7971ac387d355349eb Mon Sep 17 00:00:00 2001 From: sigoden Date: Mon, 29 Apr 2024 23:04:25 +0800 Subject: refactor: sse handling (#465) --- src/client/common.rs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/client/common.rs') diff --git a/src/client/common.rs b/src/client/common.rs index 7eb8be8..9fb0029 100644 --- a/src/client/common.rs +++ b/src/client/common.rs @@ -541,16 +541,26 @@ pub fn maybe_catch_error(data: &Value) -> Result<()> { Ok(()) } +#[derive(Debug)] +pub struct SsMmessage { + pub event: String, + pub data: String, +} + pub async fn sse_stream(builder: RequestBuilder, mut handle: F) -> Result<()> where - F: FnMut(&str) -> Result, + F: FnMut(SsMmessage) -> Result, { let mut es = builder.eventsource()?; while let Some(event) = es.next().await { match event { Ok(Event::Open) => {} Ok(Event::Message(message)) => { - if handle(&message.data)? { + let message = SsMmessage { + event: message.event, + data: message.data, + }; + if handle(message)? { break; } } -- cgit v1.2.3