|
|
|
@ -9,7 +9,7 @@ use ruma::{ |
|
|
|
RoomId, UInt, UserId, |
|
|
|
RoomId, UInt, UserId, |
|
|
|
}; |
|
|
|
}; |
|
|
|
use std::{ |
|
|
|
use std::{ |
|
|
|
collections::HashMap, |
|
|
|
collections::{HashMap, HashSet}, |
|
|
|
convert::{TryFrom, TryInto}, |
|
|
|
convert::{TryFrom, TryInto}, |
|
|
|
mem, |
|
|
|
mem, |
|
|
|
}; |
|
|
|
}; |
|
|
|
@ -280,7 +280,7 @@ impl RoomEdus { |
|
|
|
let mut prefix = room_id.as_bytes().to_vec(); |
|
|
|
let mut prefix = room_id.as_bytes().to_vec(); |
|
|
|
prefix.push(0xff); |
|
|
|
prefix.push(0xff); |
|
|
|
|
|
|
|
|
|
|
|
let mut user_ids = Vec::new(); |
|
|
|
let mut user_ids = HashSet::new(); |
|
|
|
|
|
|
|
|
|
|
|
for user_id in self |
|
|
|
for user_id in self |
|
|
|
.typingid_userid |
|
|
|
.typingid_userid |
|
|
|
@ -295,11 +295,13 @@ impl RoomEdus { |
|
|
|
) |
|
|
|
) |
|
|
|
}) |
|
|
|
}) |
|
|
|
{ |
|
|
|
{ |
|
|
|
user_ids.push(user_id?); |
|
|
|
user_ids.insert(user_id?); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Ok(SyncEphemeralRoomEvent { |
|
|
|
Ok(SyncEphemeralRoomEvent { |
|
|
|
content: ruma::events::typing::TypingEventContent { user_ids }, |
|
|
|
content: ruma::events::typing::TypingEventContent { |
|
|
|
|
|
|
|
user_ids: user_ids.into_iter().collect(), |
|
|
|
|
|
|
|
}, |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|