From 9788233771e015533bbfc29855bd122a520ce633 Mon Sep 17 00:00:00 2001 From: Devin R Date: Thu, 30 Apr 2020 06:28:36 -0400 Subject: [PATCH] room/message: make docs more clear, deserialize to MessageEvent over RoomEvent --- matrix_sdk/src/models/message.rs | 14 +++----------- matrix_sdk/src/models/room.rs | 2 +- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/matrix_sdk/src/models/message.rs b/matrix_sdk/src/models/message.rs index f867a4cc..e65de74a 100644 --- a/matrix_sdk/src/models/message.rs +++ b/matrix_sdk/src/models/message.rs @@ -2,13 +2,12 @@ use std::cmp::Ordering; use std::ops::Deref; use std::vec::IntoIter; -use crate::events::collections::all::RoomEvent; use crate::events::room::message::MessageEvent; use crate::events::EventJson; use serde::{de, ser, Serialize}; -/// A queue that holds at most 10 messages received from the server. +/// A queue that holds the 10 most recent messages received from the server. #[derive(Clone, Debug, Default)] pub struct MessageQueue { msgs: Vec, @@ -104,19 +103,12 @@ pub(crate) mod ser_deser { where D: de::Deserializer<'de>, { - let messages: Vec> = de::Deserialize::deserialize(deserializer)?; + let messages: Vec> = de::Deserialize::deserialize(deserializer)?; - // TODO this should probably bail out if deserialization fails not skip + // TODO this should probably bail out if deserialization fails not skip the message let msgs: Vec = messages .into_iter() .flat_map(|json| json.deserialize()) - .flat_map(|ev| { - if let RoomEvent::RoomMessage(msg) = ev { - Some(msg) - } else { - None - } - }) .map(MessageWrapper) .collect(); diff --git a/matrix_sdk/src/models/room.rs b/matrix_sdk/src/models/room.rs index f73d9409..40e9924b 100644 --- a/matrix_sdk/src/models/room.rs +++ b/matrix_sdk/src/models/room.rs @@ -110,7 +110,7 @@ pub struct Room { pub creator: Option, /// The map of room members. pub members: HashMap, - /// A queue of messages no longer than MAX_MSGS + /// A queue of messages, holds no more than 10 of the most recent messages. /// /// This is helpful when using a `StateStore` to avoid multiple requests /// to the server for messages.