mirror of
https://gitlab.computer.surgery/matrix/grapevine.git
synced 2025-12-17 15:51:23 +01:00
add constructor for typing service
This commit is contained in:
parent
b18df8de70
commit
3b28d0cfda
2 changed files with 13 additions and 10 deletions
|
|
@ -11,14 +11,21 @@ use crate::{services, utils, Result};
|
|||
|
||||
pub(crate) struct Service {
|
||||
// u64 is unix timestamp of timeout
|
||||
pub(crate) typing:
|
||||
RwLock<BTreeMap<OwnedRoomId, BTreeMap<OwnedUserId, u64>>>,
|
||||
typing: RwLock<BTreeMap<OwnedRoomId, BTreeMap<OwnedUserId, u64>>>,
|
||||
// timestamp of the last change to typing users
|
||||
pub(crate) last_typing_update: RwLock<BTreeMap<OwnedRoomId, u64>>,
|
||||
pub(crate) typing_update_sender: broadcast::Sender<OwnedRoomId>,
|
||||
last_typing_update: RwLock<BTreeMap<OwnedRoomId, u64>>,
|
||||
typing_update_sender: broadcast::Sender<OwnedRoomId>,
|
||||
}
|
||||
|
||||
impl Service {
|
||||
pub(crate) fn new() -> Self {
|
||||
Self {
|
||||
typing: RwLock::new(BTreeMap::new()),
|
||||
last_typing_update: RwLock::new(BTreeMap::new()),
|
||||
typing_update_sender: broadcast::channel(100).0,
|
||||
}
|
||||
}
|
||||
|
||||
/// Sets a user as typing until the timeout timestamp is reached or
|
||||
/// `roomtyping_remove` is called.
|
||||
#[tracing::instrument(skip(self))]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue