summaryrefslogtreecommitdiffstats
path: root/src/client/common.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/common.rs')
-rw-r--r--src/client/common.rs14
1 files changed, 12 insertions, 2 deletions
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<F>(builder: RequestBuilder, mut handle: F) -> Result<()>
where
- F: FnMut(&str) -> Result<bool>,
+ F: FnMut(SsMmessage) -> Result<bool>,
{
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;
}
}