From f6d371b36fd1cd4cfe622f2be0570dcf4d58e49a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damir=20Jeli=C4=87?= Date: Wed, 23 Oct 2019 22:51:34 +0200 Subject: [PATCH] async_client: Remove the non-async callbacks. --- examples/login.rs | 13 +------------ src/async_client.rs | 19 ++++--------------- 2 files changed, 5 insertions(+), 27 deletions(-) diff --git a/examples/login.rs b/examples/login.rs index a076cc84..32af92d2 100644 --- a/examples/login.rs +++ b/examples/login.rs @@ -22,18 +22,7 @@ async fn login( .disable_ssl_verification(); let mut client = AsyncClient::new_with_config(&homeserver_url, None, client_config).unwrap(); - let callback = |event| { - if let RoomEvent::RoomMessage(MessageEvent { - content: MessageEventContent::Text(TextMessageEventContent { body: msg_body, .. }), - sender, - .. - }) = event - { - println!("{}: {}", sender, msg_body); - } - }; - - client.add_event_future(EventType::RoomMessage, |event| { + client.add_event_callback(EventType::RoomMessage, |event| { Box::pin(async { if let RoomEvent::RoomMessage(MessageEvent { content: MessageEventContent::Text(TextMessageEventContent { body: msg_body, .. }), diff --git a/src/async_client.rs b/src/async_client.rs index a15a8fa5..ea63faf4 100644 --- a/src/async_client.rs +++ b/src/async_client.rs @@ -27,8 +27,7 @@ pub struct AsyncClient { /// User session data. base_client: BaseClient, /// Event callbacks - event_callbacks: HashMap>, - event_futures: + event_callbacks: HashMap Pin>>>>, } @@ -117,7 +116,6 @@ impl AsyncClient { http_client, base_client: BaseClient::new(session), event_callbacks: HashMap::new(), - event_futures: HashMap::new(), }) } @@ -160,24 +158,15 @@ impl AsyncClient { http_client, base_client: BaseClient::new(session), event_callbacks: HashMap::new(), - event_futures: HashMap::new(), }) } pub fn add_event_callback( - &mut self, - event_type: EventType, - callback: impl FnMut(RoomEvent) + 'static, - ) { - self.event_callbacks.insert(event_type, Box::new(callback)); - } - - pub fn add_event_future( &mut self, event_type: EventType, callback: impl FnMut(RoomEvent) -> Pin>> + 'static, ) { - self.event_futures.insert(event_type, Box::new(callback)); + self.event_callbacks.insert(event_type, Box::new(callback)); } pub async fn login>( @@ -246,8 +235,8 @@ impl AsyncClient { cb(event.clone()); } - if self.event_futures.contains_key(&event_type) { - let cb = self.event_futures.get_mut(&event_type).unwrap(); + if self.event_callbacks.contains_key(&event_type) { + let cb = self.event_callbacks.get_mut(&event_type).unwrap(); let future = Pin::from(cb(event.clone())); future.await; }