Handle removing folders and their path-to-ID associations better

This commit is contained in:
Lucien Greathouse
2018-11-17 20:17:24 -08:00
parent f632444a0e
commit 767a59a481
3 changed files with 120 additions and 33 deletions

View File

@@ -24,8 +24,8 @@ pub fn get_listener_id() -> ListenerId {
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "type")]
pub enum Message {
InstanceChanged {
id: RbxId,
InstancesRemoved {
ids: Vec<RbxId>,
},
}
@@ -50,29 +50,23 @@ impl MessageQueue {
messages.extend_from_slice(new_messages);
}
{
for listener in message_listeners.values() {
listener.send(()).unwrap();
}
for listener in message_listeners.values() {
listener.send(()).unwrap();
}
}
pub fn subscribe(&self, sender: mpsc::Sender<()>) -> ListenerId {
let id = get_listener_id();
{
let mut message_listeners = self.message_listeners.lock().unwrap();
message_listeners.insert(id, sender);
}
let mut message_listeners = self.message_listeners.lock().unwrap();
message_listeners.insert(id, sender);
id
}
pub fn unsubscribe(&self, id: ListenerId) {
{
let mut message_listeners = self.message_listeners.lock().unwrap();
message_listeners.remove(&id);
}
let mut message_listeners = self.message_listeners.lock().unwrap();
message_listeners.remove(&id);
}
pub fn get_message_cursor(&self) -> u32 {